我想创建一个带有函数的列向量,其中一个变量是固定的,一个是变量。我在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);
......等等
代码无法正常运行,请帮我找错。
答案 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);