% 生成一个包含随机维度矩阵的元胞数组
a = randi(5,1); b = randi(3,1);
for m = 1:a
for n = 1:b
A{m,n} = randi(10,randi(5,1),randi(5,1));
end
end
% 将上元胞数组拆散
[m,n] = size(A);
d = 1;
for k = 1:m
for h = 1:n
nm = sprintf('A%d_%d',[k,h]);
ss = [nm '=A{' num2str(d) '};'];
eval(ss)
d = d+1;
end
end
a=sum(A) %列求和
b=sum(A,2) %行求和
c=sum(A(:)) %矩阵求和
假定A为一个矩阵:
sum(A)以矩阵A的每一列为对象,对一列内的数字求和。
sum(A,2)以矩阵A的每一行为对象,对一行内的数字求和。
通过下面的例子,可以明白:
>> a=[1 2 3; 4 5 6; 7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> sum(a)
ans =
12 15 18
>> sum(a,2)
ans =
6
15
24
>> sum(a(:))
ans =
45.
% 试下下面的代码,如果 cell 不复杂应该可以达到目的
A = {...};
B = cell2mat(A);
sm = sum(B(:));