我有一个现有的结构数组,它使用load()
语句加载到工作区中。这些字段包含char
和double
。
我想在脚本中创建这个结构,包括其字段的内容,但由于结构很大,我不想手工编写所有字段和值。
将结构字段从工作区拖到编辑器中只会复制字段名称。
是否有一种简单方便的方法来提取字段及其值,以便结构数组的字段
example_struct
转换为
形式的陈述example_struct.field1 = <some_value>;
哪些不涉及编写脚本?
编辑:我想编写一个脚本(一个M文件),用实际值填充 new 结构数组。我想从我加载load()
的现有结构中获取该脚本的语句,包括值,但我想知道是否可以在不编写脚本的情况下完成(比如使用fprintf语句) )执行任务。
答案 0 :(得分:3)
如果我理解正确,您希望将结构转储到Matlab脚本文件中,而不是.mat文件中。你可以用几行Matlab做这样的事情:
fId = fopen('outputfile.m');
names = fieldnames(example_struct);
for i = 1 : length(names)
fprintf(fId, 'example_struct.%s = %d;\n', names{i}, example_struct.(names{i}) );
end
fclose(fId);
fieldnames
函数返回结构的字段名称的单元格数组,可以使用example_struct.('name')
表示法依次访问该数组。请注意,我做了一些基本的假设,比如所有字段都是数字。我会留给你扩展这个以满足你的需求!