一个逻辑矩阵中所有元素的求和表达式



通常要对矩阵中的所有元素求和

A = sum ( B(:) );

很简洁。但是,假设我们有一个像这样的逻辑表达式

B = B == 6 

而我们想要对所有条目的元素求和,那么最聪明的方法似乎是做

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

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

都有点丑。所以我在想有没有更好的表达方式?

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

可以,但是不行

那么简单的解决方案有什么不好呢…

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

我并不推荐这样做,但正如前面所示,您实际上可以这样做:

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

相关内容

最新更新