我正在处理一个类似于以下示例中的“MyCellArray”的 Matlab 数据结构:
% Create a Struct of string values inside a Cell Array
myCellArray = cell(3,1)
myStruct1 = struct('valA','aaa111','valB','bbb111','valC','ccc111')
myStruct2 = struct('valA','aaa222','valB','bbb222','valC','ccc222')
myStruct3 = struct('valA','aaa333','valB','bbb333','valC','ccc333')
myCellArray{1} = myStruct1
myCellArray{2} = myStruct2
myCellArray{3} = myStruct3
我希望能够有效地将一些数据提取到一个新数组中:
% Extract all valA values from myCellArray
% ArrayOfValA = myCellArray(< somehow get all the valA values >)
DesiredResult = cellstr(['aaa111';'aaa222';'aaa333']) % Or something similar
我是 Matlab 的新手,我无法理解这个符号。我试过这样的事情:
ArrayOfValA = myCellArray{(:,1).valA} % This is incorrect notation!
真实数据超过 500K 行,所以我想尽可能避免 for 循环或其他迭代函数。不幸的是,我无法更改原始数据结构,但我想我可以复制并操作它(我尝试使用 struct2cell 但我又陷入了另一个混乱!)。是否有可能以快速有效的方式做到这一点?非常感谢。