Matlab 是否有一种方便的方法将现有结构转换为脚本?
我有一个现有的结构数组,它通过Matlab 是否有一种方便的方法将现有结构转换为脚本?,matlab,Matlab,我有一个现有的结构数组,它通过load()语句加载到工作区中。字段包含char和double 我想在脚本中创建这个结构,包括其字段的内容,但是由于结构很大,我不想手工写出所有字段和值 将结构字段从工作区拖动到编辑器中,只需将字段名称复制到编辑器上即可 是否有一种简单方便的方法来提取字段及其值,以便 example_struct 都转换为表单的语句 example_struct.field1 = <some_value>; 示例_struct.field1=; 哪一个不需要写剧本
load()
语句加载到工作区中。字段包含char
和double
我想在脚本中创建这个结构,包括其字段的内容,但是由于结构很大,我不想手工写出所有字段和值
将结构字段从工作区拖动到编辑器中,只需将字段名称复制到编辑器上即可
是否有一种简单方便的方法来提取字段及其值,以便
example_struct
都转换为表单的语句
example_struct.field1 = <some_value>;
示例_struct.field1=;
哪一个不需要写剧本
编辑:我想写一个脚本(一个M文件),用实际值填充一个新的结构数组。我想从我用
load()
加载的现有结构中获取该脚本的语句,包括值,但我想知道这是否可以在不编写脚本(例如,使用fprintf语句)来执行任务的情况下完成。如果我理解正确,您想将结构转储到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
函数返回结构的字段名单元格数组,可以使用示例结构('name')
符号依次访问该数组。注意,我做了一些基本假设,比如所有字段都是数字。我将让您根据您的需要扩展此功能 如果您只想复制结构,但没有数据,您可以尝试我在这里提出的技巧:如果您不想手动键入所有字段和值,那么这个“脚本”将如何为您执行?您有存储在某处的字段列表吗?您是想用实际值填充结构数组,还是将字段留空?@EitanT抱歉,我意识到这个问题有点混乱。我添加了一个澄清。是的,这就是我认为需要做的。我想知道是否有任何GUI(或其他)技巧会使它变得不必要,特别是因为我还有char字段。