使用all函数,通过添加判定条件得到结果.
1. 建立示例矩阵
%建立含零项数组
A=rand(4,3,3)
A(:,:,3)=0
A(1,:,:)=0
A(:,2,:)=0
A(:,3,1)=0
A(3,:,2)=0
>> A
A(:,:,1) =
0 0 0
0.0598 0 0
0.2348 0 0
0.3532 0 0
A(:,:,2) =
0 0 0
0.2963 0 0.0811
0 0 0
0.1890 0 0.7757
A(:,:,3) =
0 0 0
0 0 0
0 0 0
0 0 0
2. 进行n-1维判定(若数组为n维数组)
%使用all函数进行判定是否为零
%先进行一维判定
B1=all(A==0,1)
>> B1
B1(:,:,1) =
0 1 1
B1(:,:,2) =
0 1 0
B1(:,:,3) =
1 1 1
%再进行二维判定
B2=all(all(A==0,1)==1,2)
>> B2
B2(:,:,1) =
0
B2(:,:,2) =
0
B2(:,:,3) =
1
3. 带入原矩阵,删除零项
A(:,all(all(A==0,1)==1,3),:) = []; % 第一维
A(:,:,all(all(A==0,1)==1,2)) = []; % 第二维
A(all(all(A==0,2)==1,3),:,:) = []; % 第三维