for循环创建列向量

时间:2014-02-23 20:41:10

标签: matlab vector

我想创建一个带有函数的列向量,其中一个变量是固定的,一个是变量。我在MATLAB中有以下代码:

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

其中u3是函数。 y3是100,1向量并且是常量。 n是变化的变量。我的循环的输出应该是一个列向量,它在每一行显示一个像这样的<{1}}

  

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

代码无法正常运行,请帮我找错。

1 个答案:

答案 0 :(得分: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);