如何保存for循环的每次迭代中的值?

时间:2016-06-11 21:45:53

标签: matlab

我有一个for循环,但是每次迭代都会覆盖变量而我只剩下最后的数据。

如何保存for循环的每次迭代中的其他值?

以下是我尝试的代码:

p = [1:1:20]';
for x = 0.1:0.1:1
   q = x.*p
end

以下是我得到的结果:

q =
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

2 个答案:

答案 0 :(得分:1)

您可以将q设为二维矩阵或单元格。

二维矩阵:

q=zeros(numel(p),10); %better to pre-allocate if you know the dimensions beforehand.
count=0;

for x=.1:.1:1
   count=count+1;
   q(:,count)=x.*p;
end

细胞:

q=cell(10); %better to pre-allocate if you know the dimensions beforehand.
count=0;

for x=.1:.1:1
   count=count+1;
   q{count}=x.*p;
end

答案 1 :(得分:1)

以下是使用bsxfun()的替代解决方案。它将每个x索引与p'相乘一行

p = [1:1:20]';
x = 0.1:0.1:1;
q = bsxfun(@times,x,p)