[Matlab] 删除三维/高维数组非零/零项

本文介绍如何利用MATLAB中的all函数对三维数组进行判定处理,包括判定数组元素是否为零并进行相应维度的删除操作。通过示例展示了如何逐步实现对含零项的多维数组的有效管理和数据清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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),:,:) = []; % 第三维

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值