假设我在工作区中有如下结构数据
data.a={'1','2'};
data.b=[1,2,3];
data.c='hello';
我需要在工作区中有以下变量:
a={'1','2'};
b=[1,2,3];
c='hello';
请告诉我如何推进这个?
为什么我需要这样做(如果有更好的选择来实现我的要求):
我有大约 140 个 .mat 文件。现在,我需要替换所有这些 .mat 文件中的字符串。该字符串可以是字符串数组、元胞数组或独立变量的一部分。我为所有这些 mat 文件运行一个循环并按如下方式加载它们:
tempLoad=load('filename.mat');
然后我提取结构 tempLoad
的字段,它为我提供了 'filename.mat'
中的所有变量。然后我可以处理所有变量并替换错误字符串。现在,我需要以确切格式 保存回 'filename.mat'
。
我不能使用 save('filename.mat','tempLoad')
或简单地使用 save('filename.mat')
因为没有维护变量的原始存储由他们。
所以我需要将tempLoad
的所有字段都转换为变量,然后清除tempLoad
,然后调用save
函数。
最佳答案
您可以将结构 tempLoad
保存到 'filename.mat'
,而无需使用 ' 更改 mat 文件的结构-struct'
格式:
save( 'filename.mat', '-struct', 'tempLoad' );
参见 doc save
获取更多信息。
您也可以考虑使用 matfile
对象访问保存的 matfiles 并直接更新特定字符串,而无需每次加载/保存整个文件。
关于matlab - 如何从 matlab 中的结构字段名称生成变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30074496/