MATLAB struct结构体与字段函数 rmfield用法注意点

在MATLAB中的rmfield函数可以删除结构体变量的字段:

% rmfield函数官方文档的示例
s.a = 1;
s.b = 2;
s.c = 3;
% 删除字段 b
field = 'b';
% 用法1
rmfield(s,field)
isfield(ans,field) % 上一行输出结果的ans不包含b字段!
isfield(s,field)
% 用法2
s = rmfield(s,field)
isfield(s,field)

用法1和用法2的差别在哪里?

用法1不指定输出变量,它使rmfield函数的输出结果返回到ans。后续我们用isfield函数查看ans是否有b字段,结果ans果真没有b字段,然而我们真正想要把s变量的b字段移除,
在这里插入图片描述
用isfield函数查看s是否有b字段,结果是s依然保持该字段,这说明用法1中rmfield函数根本没有对s起作用!!!
在这里插入图片描述

然而用法2是将 rmfield函数的输出结果返回到原结构体s中,这样rmfield函数才对s起作用
在这里插入图片描述
以上一个简单的例子看起来用法1和用法2无差别,但是它们的结果不同,再看参考文档,该函数的用法只有用法2,因此提示我们需要保持严谨
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值