所以,我是MatLab的新手,我正在尝试一些我确信它是可行的。我不知道怎么回事。
以下是我正在尝试的内容:我从矩阵C生成一串结果(M)。矩阵C由16个单元组成(4x4单元格,每个单元格为90x6)。从这些细胞中的每一个,我尝试计算平均值。这给了我平均值,但在每次迭代后重写M:
for i=1:4;
for j=1:4;
M=mean2(C{i,j})
end
end
我需要的是一个4x4的矩阵,其中列出了所有C细胞的平均值,我该怎么做?
答案 0 :(得分:1)
M = zeros( 4 ); %// pre-allocate !!!
for ii=1:4;
for jj=1:4;
M(ii,jj)=mean2(C{ii,jj})
end
end
一些指示:
预分配 - 预先分配正在循环中更新的数组是一种非常好的做法 例如,请参阅this thread。
使用单元格数组时,您可能会发现cellfun
是一个有用的工具:
M = cellfun( @mean2, C );
答案 1 :(得分:0)
两种方式:
1)预先分配为@Shai说:
M = zeros( 4 );
for ii=1:4;
for jj=1:4;
M(ii,jj)=mean2(C{ii,jj})
end
end
2)追加数组中的前一个元素
M = [];
for i=1:4;
for j=1:4;
M=[M;mean2(C{i,j})];
end
end
方法1肯定更好。但是想告诉你有两种方法..