我有一个matlab文件,我们称它为dataset.mat。加载数据集时。当进入工作空间时,它包含几个变量,所有这些变量都被对象定义为一个类。我们把这些变量命名为:
varObj1 varObj2 varObj3…varObjN
现在所有这些变量都包含对象类中定义的属性。假设varObj1有以下属性:
prop1 prop2 prop3…propM
所有这些属性都包含一些值,可以是数字、文本或数组。
我有所有的varObj的文件名和所有的道具的列表:varObjList和propList。
现在的问题是:如何以某种自动化的方式提取所有这些属性的值?例如,编写某种脚本,进入每个varObj并将该对象的每个属性提取到另一个文件中,例如:
newFile = varObjList(i).propList(j)
选择第i个varObj的第j个属性的值?
这对你有用吗?
vO1 = metaclass(varObj1);
pO1 = vO1.PropertyList;
pNames = {pO1.Name};
value1 = varObj1.(pNames{1})
看了Dan的评论后,就更简单了:
pNames = properties(varObj1);
value1 = varObj1.(pNames{1})