如何在MATLAB中重命名结构数组中的字段?

Mat*_*eau 2 matlab field rename matlab-struct

给定结构数组,如何重命名字段?例如,给定以下内容,如何将"bar"更改为"baz".

clear
a(1).foo = 1;
a(1).bar = 'one';
a(2).foo = 2;
a(2).bar = 'two';
a(3).foo = 3;
a(3).bar = 'three';
disp(a)
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法,"最佳"是性能,清晰度和一般性的平衡?

gno*_*ice 7

从Matthew 扩展此解决方案,如果新旧字段名称存储为字符串,您还可以使用动态字段名称:

newName = 'baz';
oldName = 'bar';
[a.(newName)] = a.(oldName);
a = rmfield(a,oldName);
Run Code Online (Sandbox Code Playgroud)