在 MATLAB 中迭代结构数据类型的常用方法是使用如下所示的fieldnames()
函数:
mystruct = struct('a',3,'b',5,'c',9);
fields = fieldnames(mystruct);
for i=1:numel(fields)
mystruct.(fields{i});
end
不幸的是,这总是会生成单元格数据类型,我想将这种迭代用于 SIMULINK 中的 Matlab 功能块,由于代码生成原因不允许单元格数据类型。
有没有办法在不同时使用单元数据类型的情况下迭代结构?
在 Octave 中有一种简洁的方法,在https://www.gnu.org/software/octave/doc/interpreter/Looping-Over-Structure-Elements.html
for [val, key] = mystruct
# do something esp. with 'key'
end
有人知道 MATLAB 中的类似方法吗?