2014-02-23 90 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