比较MATLAB中的各个矩阵元素?

时间:2014-04-16 16:11:44

标签: arrays matlab matrix comparison

我需要比较多维数组中的值,根据这个比较,我需要将同一索引中另一个矩阵的值分配给同一索引中相同大小的新矩阵。你能告诉我如何做到这一点吗?

以下是使用for循环的代码,但我需要在不使用for循环的情况下执行此操作。

for i = 1:sizeOfMatrix(1, 1)
   for j = 1:sizeOfMatrix(1, 2)
      if grayImage(i, j) > t
          result(i, j) = 0;
      else
          result(i, j) = grayImage(i, j);
      end
   end
end

其中t是我需要与之比较的值。

1 个答案:

答案 0 :(得分:1)

使用logical indexing

result = zeros(size(grayImage));
result(grayImage <= t) = grayImage(grayImage <= t);

这是一种更有效,更清晰的方式来有条件地访问矩阵元素。

或者,您可以这样做:

result = grayImage;
result(grayImage > t) = 0;