登录论坛

查看完整版本 : 如何在MATLAB中的结构数组中重命名字段?


poster
2019-12-10, 20:41
给定结构数组,如何重命名字段?例如,给定以下内容,如何将“ 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) 什么是最佳方法,“最佳”是性能,清晰度和通用性之间的平衡?



回答:

从Matthew扩展此解决方案 (https://stackoverflow.com/a/2733608/52738)开始,如果新旧字段名称都存储为字符串,则还可以使用动态字段名称 (https://www.mathworks.com/help/matlab/matlab_prog/generate-field-names-from-variables.html) :

newName = 'baz'; oldName = 'bar'; [a.(newName)] = a.(oldName); a = rmfield(a,oldName);

更多&回答... (https://stackoverflow.com/questions/2733582)