0

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

代码如下:

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
4

2 回答 2

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
于 2013-10-17T18:37:37.443 回答
1

您需要使用不同的变量将 5 次迭代存储为数组。

代码看起来像这样:

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

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

这是将值更新到一维矩阵中的另一种方法。

于 2013-10-17T18:28:15.547 回答