1

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

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

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

有没有简单方便的方法来提取字段及其值,让结构体数组的字段

example_struct

被转化为形式的陈述

example_struct.field1 = <some_value>;

涉及编写脚本?

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

4

1 回答 1

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')请注意,我做了一些基本假设,例如所有字段都是数字。我会把它留给你来扩展它以满足你的需要!

于 2013-07-31T11:26:08.053 回答