在Matlab中求逻辑矩阵表达式的所有项之和的表达式?

在Matlab中求逻辑矩阵表达式的所有项之和的表达式?,matlab,matrix,Matlab,Matrix,要求矩阵中所有元素的和,通常需要 A = sum ( B(:) ); 它又好又短。但是假设我们有这样一个逻辑表达式 B = B == 6 我们想对所有条目的元素求和,那么最聪明的方法似乎是 A = sum ( sum ( B == 6 ) ) 或 两者都有点难看。所以我想知道有没有更好的表达方式 A = sum ( (B == 6)(:) ); 很好,但不起作用。那么简单的解决方案有什么不好的地方 A = sum(B(:) == 6); 那么,这个简单的解决方案有什么不好的地方 A

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

A = sum ( B(:) );
它又好又短。但是假设我们有这样一个逻辑表达式

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

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

两者都有点难看。所以我想知道有没有更好的表达方式

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

很好,但不起作用。

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

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

那么,这个简单的解决方案有什么不好的地方

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

我并不推荐这样做,但正如所示,您实际上可以执行以下操作:

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

我并不推荐这样做,但正如所示,您实际上可以执行以下操作:

%# A = sum ( (B == 6)(:) )
A = sum( subsref(B == 6, struct('type','()', 'subs',{{':'}})) )
A=总和((B==6)(:);不起作用吗?A=和((B==6)(:);不起作用?