如何在多个运行时在矩阵中存储数组

时间:2017-01-20 12:58:20

标签: arrays matlab matrix

我试图制作一个matlab代码来存储数组。我想创建一个包含5行和3900列的矩阵,以在其中存储五个不同的数组。 每次我运行我的matlab代码时,它应该将数组存储在第一个空行中,下次运行代码时,矩阵应该将新数组存储在第二个空行中,依此类推,直到所有五行被五个不同的数组占用。

这是我的代码:

double

此代码不能提供我想要的内容

即使这个人没有像我上面所描述的那样做正确的工作

b

和这个

matrix = zeros(5,3900);
k=1;
d=5;
if k<=d
matrix(k,:) = Array;
k=k+1;
end

我应该怎么做才能在第一次只在一行中存储一个大小为1 * 3900的数组,在下一次运行中我希望另一个数组存储在第二行中,依此类推,直到第5行?

谢谢大家

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望多次运行代码,但每次array都不同,这就填满了矩阵。 在您的示例中,每次运行代码时都会覆盖matrixk,而且(如果我理解你的话)正在阻止正确执行。你能做的就是:

  1. 在您第一次运行代码之前初始化:matrix = zeros(5,3900);k=1;
  2. 然后在没有matrix = zeros(5,3900); k=1;
  3. 的情况下运行您的第一个代码

    在这种情况下,matrixk应按您的意愿增加。

    编辑:

    您发布的第一个代码将执行以下操作(每次运行时):

    1. 创建一个大小为[3,3900]且所有0条目的矩阵。如果变量matrix已经存在,那么它将被完全覆盖
    2. kd相同,但分别为1和5
    3. 检查是否k<=d:此条件始终为真,因为k = 1d = 5
    4. matrix的第一行分配array的值(第一行因为k = 1
    5. 将{1添加到k
    6. 所以你看到#5声明没有影响,因为每次运行代码时kmatrix都会被覆盖。

      所以你要做的就是不要在代码的开头设置matrix = zeros(5,3900); k=1;。这样matrixk保持不变。但是,在第一次运行代码(如果不是Matlab不知道k是什么时)之前,您必须注意在matrixk进行初始化。

      现在这个更清楚吗?

      米莎