MatLab中如何提取特定列和并加总?

G=[0,1,1,1,0,0,0;
1,0,1,1,0,1,0;
1,1,0,1,0,0,0;
1,1,0,0,1,0,1;
0,0,0,1,0,0,1;
0,1,0,0,0,0,0;
0,0,0,1,0,0,0;];

判断若G中第i 行的第j 个元素为1,则提取第j列的和,并加总。
例如第一行中第2,3,4列元素均为一,则对第2、3、4列求列和,分别为4、2、5,在求和4+2+5=11
请问在MatLab中如何实现?

>> G=[0,1,1,1,0,0,0;
1,0,1,1,0,1,0;
1,1,0,1,0,0,0;
1,1,0,0,1,0,1;
0,0,0,1,0,0,1;
0,1,0,0,0,0,0;
0,0,0,1,0,0,0;];
>> SUM=0;%%求和
for i=1:size(G,1)
for j=1:size(G,2)
if G(i,j)==1
M=sum(G(:,j));%%计算矩阵中等于1的所在列的和
SUM=SUM+M;%%进行累加
end
end
end
>> SUM

SUM =

60
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-01
G=[0,1,1,1,0,0,0;
1,0,1,1,0,1,0;
1,1,0,1,0,0,0;
1,1,0,0,1,0,1;
0,0,0,1,0,0,1;
0,1,0,0,0,0,0;
0,0,0,1,0,0,0;];
[a,b]=size(G);
for i=1:a;
zongsum=0;
for j=1:b
if G(i,j)==1
mysum=sum(G(:,j));
zongsum=zongsum+mysum;
disp(['第' num2str(i) '行' '第' num2str(j) '列元素为1'])
disp(['所以求出第' num2str(j) '列元素之和为:' num2str(mysum)])
end
end
disp(['综上可知,第' num2str(i) '行满足条件的列的总和为:' num2str(zongsum)])
disp(' ')
end
相似回答