MATLAB:比较两个数组的所有元素

标签 matlab matrix comparison vectorization

我在 MATLAB 中有两个矩阵,可以说 arr1arr2,每个矩阵的大小为 1000*1000。我想比较它们的元素并将比较保存在结果矩阵 resarr 中,它也是 1000*1000 这样对于每个元素:

  • 如果 arr1 中的元素大于 arr2 中的元素,则将值 1 放入结果中
  • 如果arr2中的元素更大,则存储值2

但我不想使用 for 循环来执行此操作,因为那样速度较慢。我该怎么做?


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

例如,如果 arr1 较大,则存储 (255,0,0),如果 arr2 较大,则存储 (0,255,0)

最佳答案

resarr = 2 - (arr1 > arr2)

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

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

关于MATLAB:比较两个数组的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209194/

相关文章:

Matlab:如何在没有 Tab 的情况下激活自动完成?

matlab - 矢量化在 Matlab 中不起作用 - 矩阵尺寸不一致?

opengl - 如何创建透视投影矩阵,给定焦点和相机主中心

r - 如何将列向量转换为矩阵的对角线?

c# - 字典的多键查找

matlab - MATLAB奇怪的错误Gamma函数数值积分

arrays - 如何在 Matlab 中创建指向对象的指针数组?

python - 生成所有可能的无向图

用于比较图像相似度的 Java 库

python - 如何在 python 的断言语句中使用小于等于