Matlab将文件保存为在其他变量中定义的名称

时间:2012-06-27 10:41:46

标签: matlab variables save

我想在进程循环结束时将多个变量加载到一个.mat文件中。我有一行简单的代码:

save draw.mat Output

但我无法找到一种方法来代码'使用变量X'给出的名称而不是'输出',这样我就可以循环处理并在draw.mat中保存多个变量

那么

X = 'Chocolate'

,变量名称保存为巧克力。

我确信它很简单但我在这里找不到解决方案!

3 个答案:

答案 0 :(得分:4)

您需要SAVE的功能形式。换句话说,SAVE可以这样调用:

save('draw.mat', 'Output1', 'Output2');

因此,如果要保存的变量名在一个单独的变量中,则可以执行

v1 = 'Output1';
v2 = 'Output2';
save('draw.mat', v1, v2);

甚至

v = {'Output1', 'Output2'};
save('draw.mat', v{:});

SAVE reference page有完整的详细信息。

答案 1 :(得分:2)

您可以使用-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);

答案 2 :(得分:0)

A = [2 5 8; 25 2 4; 4 1 7];
save('A.mat')

现在您要将其保存为其他名称B

B = A;
save('B.mat')