可以"所有()"函数应用于子矩阵?[MATLAB]

时间:2016-08-31 13:39:13

标签: matlab

如果我有matrix A size (1000,3)

比方说,子矩阵的大小为(100,3),即有10个子矩阵。

我想使用all(A,2)来逐列评估A,这样all()应该返回10与每个子矩阵相对应的单独结果。

我需要单独结果的原因是运行此代码

length(nonzeros(all(A,2)))/400

这意味着,最后,length()应该返回10个值,对应于每个子矩阵。

1 个答案:

答案 0 :(得分:2)

您可以reshape您的数据,然后沿第一维和第三维调用all

all(all(reshape(A, 100, [], size(A, 2)), 1), 3)

或者,您可以在致电A之前先转置reshapeall

all(reshape(A.', [], 10), 1)

如果您只想在每个子矩阵中使用非零的百分比,则可以计算sum的{​​{1}}。

logical