作业帮 > 综合 > 作业

matlab求多个矩阵中每个非零元素的平均值

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 08:57:07
matlab求多个矩阵中每个非零元素的平均值
比如,分别有50个大小相同的矩阵,在每个(i,j)上,如果50个矩阵都在这一点上有值,求出这一点的平均值不难.但是有些矩阵在(i,j)上是0,如何计算,抛去含有这样0点的矩阵,只求剩余非零矩阵点上的平均值呢?也就是,若某一点为0,这个矩阵不参加平均值的运算.
例如:两个3*3的矩阵:A=[2 2 3; 0 5 0; 1 0 1]; B=[2 0 1; 2 1 2; 1 2 3];应该得到的结果是[2 2 2;2 3 2; 1 2 2]
% 考虑到矩阵数量较多,用元胞数组处理较有通用性.
p = 2; % 相同矩阵的数量,或者在输入完元胞数组后 p = length(A)
m = 3; n = 3; % 矩阵的行列数
A{1} = [2 2 3; 0 5 0; 1 0 1]; % 矩阵数据均存入元胞数组内
A{2} = [2 0 1; 2 1 2; 1 2 3];
S = zeros(m,n); % 放置和的矩阵
L = S; % 统计非零元素数量的矩阵
for k = 1:p
S = S+A{k};
L = L+double(A{k}~=0);
end;
R = S./L % 结果