登录论坛

查看完整版本 : MATLAB:比较两个数组的所有元素


poster
2019-12-10, 20:30
我在MATLAB中有两个矩阵,可以说arr1和arr2的大小分别为1000 * 1000。我想比较它们的元素,并将比较结果保存在结果矩阵resarr ,该结果也是1000 * 1000,这样每个元素:


如果arr1的元素大于arr2的元素,则将值1放入结果中
如果arr2的元素较大,则存储值2
但是我不想用for循环来做,因为那比较慢。我怎样才能做到这一点?

编辑:另外,如果我想在1000 * 1000 * 3结果矩阵中存储不同的RGB值,取决于arr1和arr2的比较,可以在没有慢循环的情况下完成吗?

例如商店(255,0,0)如果arr1较大和(0,255,0)如果arr2较大



回答:

resarr = 2 - (arr1 > arr2) arr1>arr2比较arr1和arr2,返回1000x1000矩阵,其中包含1,其中arr1较大,否则为0。 2 -部分使它成为一个矩阵,如果arr1大于arr2,则为1,否则为2。

注意:如果arr1和arr2在某个时候是等价的,那么您也会得到2(因为arr1> arr2返回0,那么2-0 = 2)。



更多&回答... (https://stackoverflow.com/questions/2209194)