n0o*_*0ob 2 comparison matlab matrix vectorization
我在MATLAB两个矩阵让说arr1和arr2尺寸1000*1000的每一个.我想比较它们的元素并将结果保存在resarr1000*1000 的结果矩阵中,以便每个元素:
arr1大于in arr2,则将值1放在结果中arr2更大,则存储值2但是我不想用for循环来做这个,因为那个更慢.我怎样才能做到这一点?
编辑:
另外,如果我想不同的RGB值存储在一个1000×1000×3矩阵的结果,取决于比较arr1和arr2,可以在不慢的循环来实现?
例如,store(255,0,0)if arr1更大,(0,255,0)if arr2更大
resarr = 2 - (arr1 > arr2)
Run Code Online (Sandbox Code Playgroud)
arr1>arr2逐个元素地比较arr1和arr2,返回包含1的1000x1000矩阵,其中arr1更大,否则返回0.2 - 如果arr1大于arr2,则该部分将其变为矩阵,其中有1,否则为2.
注意:如果arr1和arr2在某个时刻是euqal,你也会得到2(因为arr1> arr2返回0,然后2-0 = 2).