我想使用Matlab将以下for
- 循环结果保存在一个新矩阵中,我该怎么做?或者其他任何建议?
X
是 5467 -by- 513 矩阵,id
是 143 -by- 1 向量和wkno
是 44 -by- 1 向量
for i=1:size(id,1);
for j=1:size(wkno,1);
tst= X(:,1)==id(i) & X(:,2)==wkno(j);
M=mean(X(tst,:));
end
end
答案 0 :(得分:1)
确保您实际将事物保存到矩阵而不是标量变量,即将下标索引添加到您要保存到的变量中:
for ii=1:size(id,1);
for jj=1:size(wkno,1);
tst(ii,jj)= X(:,1)==id(ii,1) & X(:,2)==wkno(jj,1);
M(ii,jj)=mean(X(tst,:));
end
end
不是因为this is a bad idea而禁止将i
和j
用作变量。我将,1
添加到id
和wkno
,以确保您将它们用作列变量。这是一个很好的习惯,因为当你有一个多维数组时,单个索引会出错。