如何在MATLAB中检查4D矩阵中的非零值?

时间:2014-06-10 07:32:20

标签: matlab multidimensional-array zero any

我坚持使用这种简单的矩阵运算。 我有4D矩阵叫F,类double,大小(F)= 10 345 345 14.(我不太确定我是否应该转换为逻辑) 它包含0和1,它表示在检查邻居的一些操作之后的掩码。 我需要查看每个对象' (第一维,1:10),如果存在任何非零值并创建一个逻辑数组Con,其大小(Con)= 10,如果存在非零值,则为1;如果所有值均为0,则为0。 我尝试了很多不同的方法,我不确定有多少'任何'我应该放,如果我需要每次都应用挤压。 这是我的代码:

[m,n,o,p]=size(F);

for ob=1:m         %for each object
    A=F(ob,:,:,:);
    A=squeeze(A);
    if any(A(:))
       Con(ob)=1;
    else
       Con(ob)=0;
    end

end

非常感谢任何帮助,谢谢!

齐格。

1 个答案:

答案 0 :(得分:1)

试试这个 -

Con = any(reshape(F,m,[]),2)