如何在matlab中将向量提升到幂?

时间:2014-01-26 07:40:17

标签: matlab vector vectorization

使用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)

它会保持返回相同的值。

  • 为什么?
  • 这是正确的方法吗?

2 个答案:

答案 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)