我有一个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
答案 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)