分别对每行和每列求和并在Matlab中输出?

时间:2013-11-16 23:29:25

标签: matlab sum

假设我有一个包含N行列数的矩阵,我不知道有多少行,我想对每一行求和,并输出每行的总和和列的相同。提前致谢。我将如何在Matlab中为此编写循环?

提前致谢

2 个答案:

答案 0 :(得分:4)

如果您只想在每行/每列中找到元素总和,那么sum函数就是您所需要的。

计算矩阵A:中每行元素的总和

sum(A,2)

计算矩阵A:的每列元素的总和

sum(A,1)

或只是

sum(A)

如果您想打印结果:

r = sum(A,2);
fprintf('Sum for row%d: %e\n', [1:length(r); r']);

如果您在理解MatLab语法时遇到问题 - look at this book

答案 1 :(得分:0)

您可以为大小为m行x n列

的矩阵A编写以下内容
% Initialise output vector 
[m n]=size(A);
rowsum=zeros(m,1); % This will be  vector of the sum of each row
colsum=zeros(n,1); % This will be  vector of the sum of each column
for i=1:m
  rowsum(i,1)=sum(A(i,:));
end

for i=1:n
  colsum(i,1)=sum(A(:,i));
end

所以现在你将得到每行总和的mx1向量和每列总和的nx1向量。