matlab - 如何从 matlab 中的结构字段名称生成变量?

标签 matlab matrix struct

假设我在工作区中有如下结构数据

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/

相关文章:

c - 静态结构初始化 C

matlab - fmincon 和求解器的目标函数中的错误过早停止,MATLAB for 循环

matlab - 如何在matlab中训练SVM进行字符识别?

c++ - 如何使用 Rcpp 就地缩放 NumericMatrix?

将三列数据框 reshape 为矩阵 ("long"到 "wide"格式)

c - 是什么让这个结构不完整?

matlab - 将 RGB 值映射到颜色名称 MATLAB

matlab - Matlab : function handle in cell array with undefined operators

r - 为什么矩阵到栅格显示旋转?

json - 如何解析golang中的json数组?