2014-02-23 94 views
0

我想創建一個列向量,其中一個變量是固定的,一個變化。我在MATLAB中有以下代碼:for循環創建列向量

y3=ones(100,1) 
for n=2:100 
u3 = ((y3).^(1-n)-1)/(1-n); 
end 

其中u3是函數。 y3是一個100,1向量,並且是常量。 n是變化的變量。我的環路的輸出應該是一個列向量,其示出了每行中的改變n這樣

行1((Y3)^(1-2)-1)/(1-2); ((y3)。^(1-3)-1)/(1-3); ((y3)。(1-4)-1)/(1-4);
...等等

代碼does not工作正常,請大家幫我發現其中的錯誤。

回答

1

1)不需要將y3作爲常量數組存儲。如果你知道y3是一個常數,只要使用y3=1(y3^(1-n)-1)/(1-n);

2)循環的每一個執行過程中,u3正在覆蓋。如果你想收集它,你可能想要做一些像u3(n-1)=((y3).^(1-n)-1)/(1-n);

3)這可以通過向量化操作並擺脫for循環來優化。你有沒有考慮過?

n = 2:100; 
y3 = 1; 
u3 = (y3.^(1-n)-1)./(1-n); 
+0

感謝:

沿東西線。這樣一個簡單的方法。 – user3333799