当我调用fieldnames(md)
时,我有一个md类中所有元素的列表。
现在md
中的每个元素都有许多子类,这些子类有自己的子元素,例如fieldnames(md)
返回的第一个项称为mesh
,当我调用fieldnames(mesh)
时,我得到另一个字符串列表,其中包含来自mesh
的所有项目,就是这样。
此处的目标是将所有md
子类中的所有项目写入文本文件。
我尝试了以下内容:
mfields = fieldnames(md);
fid = fopen('textfile.txt','w');
for i=1:numel(mfields)
for j=1:numel(fieldnames(mfields{i}))
fprintf(fid,'%s\r\n',fieldnames(mfields{i}))
end
end
但显然字段名不以char
为参数。我是matlab的新手,所以请建议是否有其他功能可以完成这项工作
非常感谢
答案 0 :(得分:0)
试试这个:
mfields = fieldnames(md);
fid = fopen('textfile.txt','w');
for i=1:numel(mfields)
%// Check if the field is a struct itself, otherwise it will not have any subfields.
if isstruct(md.(mfields{i}))
subfields=fieldnames(md.(mfields{i}));
else
%// Put a space so that it will still display the root field name when there are no subfields
subfields = {' '};
end
%// Loop through all the subfields
for j=1:numel(subfields)
fprintf(fid,'%s\r\n',subfields{j}) %// Or fprintf(fid,'%s\t%s\r\n',mfields{i}, subfields{j})
end
end