有没有一种方便的方法将现有结构转换为脚本?

时间:2013-07-31 10:50:26

标签: matlab

我有一个现有的结构数组,它使用load()语句加载到工作区中。这些字段包含chardouble

我想在脚本中创建这个结构,包括其字段的内容,但由于结构很大,我不想手工编写所有字段和值。

将结构字段从工作区拖到编辑器中只会复制字段名称。

是否有一种简单方便的方法来提取字段及其值,以便结构数组的字段

example_struct

转换为

形式的陈述
example_struct.field1 = <some_value>;
哪些涉及编写脚本?

编辑:我想编写一个脚本(一个M文件),用实际值填充 new 结构数组。我想从我加载load()的现有结构中获取该脚本的语句,包括值,但我想知道是否可以在不编写脚本的情况下完成(比如使用fprintf语句) )执行任务。

1 个答案:

答案 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')表示法依次访问该数组。请注意,我做了一些基本的假设,比如所有字段都是数字。我会留给你扩展这个以满足你的需求!