我在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)。
更多&回答...