使用FreeMat
我一直试图使用此代码将向量提升为2的幂:
v=[4 -3 8 -7 2 -10 11 4]
disp('v before = ')
disp(v)
for i=1:1:length(v)
if (v<0) & (v>-8)
v(i)=v(i)^2
end
end
disp('v after = ')
disp(v)
但它会保持返回相同的值。
答案 0 :(得分:1)
为什么不用逻辑索引来对它进行矢量化?如果需要条件,则不用于循环\
v(v<0 & v>-8)=v(v<0 & v>-8).^2
答案 1 :(得分:0)
您需要更改
if (v<0) & (v>-8)
到
if (v(i)<0) & (v(i)>-8)