我想在流程循环结束时将多个变量加载到一个 .mat 文件中。我有一行简单的代码:
save draw.mat Output
但我无法找到一种方法来编码“使用变量 X 给出的名称”而不是“输出”,这样我就可以循环该过程并将多个变量保存在 draw.mat
那么那么
X = 'Chocolate'
变量名称保存为 Chocolate。
我相信这很简单,但我在这里找不到解决方案!
您需要 SAVE 的函数形式。换句话说,可以像这样调用 SAVE:
save('draw.mat', 'Output1', 'Output2');
因此,如果您要保存的变量名在一个单独的变量中,您可以这样做
v1 = 'Output1';
v2 = 'Output2';
save('draw.mat', v1, v2);
甚至
v = {'Output1', 'Output2'};
save('draw.mat', v{:});
SAVE 参考页面包含完整的详细信息。
您可以使用命令的-struct
形式save
。您构建一个结构体,其字段包含生成的 .mat 文件中的变量名称。
例子:
s = struct();
s.VariableOne = 1;
s.VariableTwo = 2;
save draw.mat -struct s;
文件 draw.mat 现在将包含两个名称为“VariableOne”和“VariableTwo”的 1x1 双精度变量。
您还可以在一个命令中构建结构:
s = struct('VariableOne', {1}, 'VariableTwo', {2});
或者您可以使用以下cell2struct
功能:
data = {1,2};
names = {'VariableOne', 'VariableTwo'};
s = cell2struct(data(:), names(:), 1);
让
A = [2 5 8; 25 2 4; 4 1 7];
save('A.mat')
现在你想用其他名字保存它说B
B = A;
save('B.mat')