如何让Matlab一维对象数组在变量编辑器中像结构体数组展示?
MATLAB对象数组在变量编辑器中批量查看属性的问题及优化需求
在MATLAB中,一维对象数组在变量编辑器中查看属性值的操作十分不便——必须逐个点击每个对象才能查看其属性。为此,我定义了如下struct方法,将一维对象数组转换为一维结构体数组,从而可在变量编辑器中直接查看所有属性值:
classdef myClass properties Property1 = 'abc' Property2 = 123 Property3 = 'def' end methods function s = struct(self) pub_prop = properties(self); s(numel(self)) = struct; for iProp = 1:numel(pub_prop) [s.(pub_prop{iProp})] = self.(pub_prop{iProp}); end end end end
创建对象数组的代码:
objArray(4) = myClass;
转换为结构体数组后,即可在变量编辑器中直接查看所有属性值。随后我尝试重载openvar方法,期望双击对象数组时自动转为结构体数组打开:
classdef myClass2 < myClass properties end methods function openvar(varargin) s = inputname(1); openvar([s '.struct']); end end end
objArray2(4) = myClass2; objArray2.openvar
但直接双击工作区中的objArray2时出现错误:
Error using matlab.desktop.vareditor.VariableEditor.checkVariableName The first argument to VariableEditor must be a valid variable name. Error in openvar (line 96) matlab.desktop.vareditor.VariableEditor.checkVariableName(name); Error in myClass2/openvar (line 9) openvar([s '.struct']);
后续修改后,双击工作区中的对象数组可正常实现需求,但当对象数组存储在结构体或其他对象中时(如myStruct.objArray2b = objArray2b;),双击打开仍采用对象数组的默认显示方式;而在单元格中双击对象数组却能正常显示结构体数组视图。请问该如何解决这一问题?
内容的提问来源于stack exchange,提问作者jason.tran
相关产品推荐
相关产品推荐

