用于在Matlab中对逻辑矩阵表达式的所有条目求和的表达式?

时间:2011-10-03 01:47:55

标签: matlab matrix

要求矩阵中所有元素的总和

A = sum ( B(:) );

这很好而且很短。但是假设我们有一个像这样的逻辑表达式

B = B == 6 

我们想要总结所有条目的元素,然后最聪明的方式似乎是

A = sum ( sum ( B == 6 ) )

B = B == 6;
A = sum( B(:) );

两者都有点难看。所以我想知道有更好的表达吗?

A = sum ( (B == 6)(:) );

会很好但不起作用。

2 个答案:

答案 0 :(得分:3)

那么简单的解决方案是多么令人讨厌...

A = sum(B(:) == 6);

答案 1 :(得分:0)

不是我推荐这个,但是如previously所示,您实际上可以执行以下操作:

%# A = sum ( (B == 6)(:) )
A = sum( subsref(B == 6, struct('type','()', 'subs',{{':'}})) )