替换八度矩阵上的元素

Substitute element on a octave matrices

我想替换一个矩阵中包含在一个范围内的所有元素。我尝试使用这种方法(例如简单的代码):

A = rand(5);
A(A>0 && A<0.5) = 0.5;

但是没用。这一项工作:

A = rand(5);
for j = 1:5
  for i = 1:5
    if A(i,j)>0 && A(i,j)<0.5
      A(i,j) = 0.5;
    endif
  endfor
endfor

但是速度很慢。

快到了:

A = rand(5);
A(A>0 & A<0.5) = 0.5;

参见Element-by-element boolean operator。您使用了 &&,这是一个 Short-circuit 布尔运算符。