用于循环输出为数组

时间:2013-10-17 18:25:06

标签: matlab for-loop

我在Matlab中编写了一个代码,我预先定义变量“a”,然后设置一个5次迭代的for循环,其中变量“a”经历了一些基本操作。但是,for循环输出仅保存“a”的第五次迭代。如何在1x5阵列中保存所有5次迭代?

代码如下:

a = 10;
k = 0.5;
n = 2;
for m = 1:5
    a = a + (a*k) + n;
end

编辑: 我刚发现我必须创建一个新变量。

a = 10;
k = 0.5;
n = 2;
a_n = zeros(1,5);

for m = 1:5
    a = a + (a*k) + n;
    a_n(m) = a;
end

2 个答案:

答案 0 :(得分:2)

您可能需要在每次迭代后将a的值存储到另一个变量x

a = 10;
k = 0.5;
n = 2;
for m = 1:5
    a = a + (a*k) + n;
    x(m) = a;
end
x

输出:

x =
    17.000    27.500    43.250    66.875   102.312

答案 1 :(得分:1)

您需要使用另一个变量将5次迭代存储为数组。

代码看起来像这样:

a = 10;
k = 0.5;
n = 2;
b = [];
for m = 1:5
   a = (a + (a*k) + n)
   b = [b a];
end

现在,您可以为所有5个迭代值打印b

以下是将值更新为1-D矩阵的另一种方法。