如何通过无限数量的集合增加一个变量,在Matlab。我想要增加一个变量,直到每次循环结束0.1,但是通过一组范围。 我目前正在通过:K=K*0.1; %K = 2 initially
来做这件事,但我想通过Matlab的[0.1:0.1:9]
其中9
是循环协调的技巧。Matlab的技巧增加变量
我的代码:
K=2;
for ii=1:9
K=K*0.1;
end
如何通过无限数量的集合增加一个变量,在Matlab。我想要增加一个变量,直到每次循环结束0.1,但是通过一组范围。 我目前正在通过:K=K*0.1; %K = 2 initially
来做这件事,但我想通过Matlab的[0.1:0.1:9]
其中9
是循环协调的技巧。Matlab的技巧增加变量
我的代码:
K=2;
for ii=1:9
K=K*0.1;
end
您可以尝试使用cumprod命令返回元素的累积产在矩阵或矢量。对于你的榜样,是这样的:
K=cumprod([2 repmat(0.1,1,9)]); % returns a row vector of 9 elements
repmat只是创建九个元素每一组的值0.1的行向量。向量中的最后一个元素K(结束)将作为您的示例返回的产品。即K = 2*0.1^9;
如果我理解正确:
for K = 2 * 0.1.^(1:9)
%// do something with K
end
也许范围应该是'0:8',包括'K = 2'。 –
它可以possibe没有for循环? – user3593525
@ user3593525这取决于您想对'K'所做的操作是否可以进行矢量化。例如:'K = 2 * 0.1。^(1:9); y = sqrt(K);'。这是可能的,因为'sqrt'允许向量输入 –
你是不是指'for ii = 1:9'? –
是的,我编辑过。 – user3593525