2014-01-26 46 views
0

使用FreeMat我一直在試圖提出一個向量的兩個電源,使用此代碼:如何在matlab中將矢量提升爲功率?

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

您需要更改

if (v<0) & (v>-8) 

if (v(i)<0) & (v(i)>-8) 
+0

謝謝!這工作。 – kaizoku

1

你爲什麼不使用邏輯索引矢量化呢?沒有for loop \如果條件需要:

v(v<0 & v>-8)=v(v<0 & v>-8).^2