从 for 循环 matlab 内部生成的变量分配向量值

Posted

技术标签:

【中文标题】从 for 循环 matlab 内部生成的变量分配向量值【英文标题】:Assigning vector values from a variable generated inside for loop matlab 【发布时间】:2015-05-05 07:08:25 【问题描述】:

在 Matlab 中,我试图将在 for 循环中生成的变量的值分配给数组。

for i=1:4
S = 2*i;
P(i) = S;
end

S 在 for 循环中生成,它的所有值都是:2, 4, 6 and 8

现在我想将 S 的每个值分配给一个数组 P 这样我想要

P(1) = 2, P(2) = 4, P(3) = 6, P(4) = 8

但是我包含的 for 循环不起作用,我不知道为什么。首先,它创建一个char,而不是创建和数组。其次,没有添加任何值,最后 P 为空。

我不确定为什么它不起作用?有人知道如何解决这个问题吗?

【问题讨论】:

尝试先分配P by P=zeros(4,1); 【参考方案1】:

您已经有一个变量P,它是一个字符。下标赋值不会改变变量的类型。使用clear P 删除它,你就会得到你想要的。或者,您可以按照 Photon 的建议用零覆盖 P。

这也可以不用循环解决:

P=2.*[1:4]

或:

P=2:2:8

【讨论】:

以上是关于从 for 循环 matlab 内部生成的变量分配向量值的主要内容,如果未能解决你的问题,请参考以下文章

matlab处理循环特别慢的问题

循环中重新分配的句柄类的 Matlab 代码生成

MATLAB for循环

MATLAB的流程控制

JS变量名称循环定义

MATLAB中for循环变量值不增加