我想在进程循环结束时将多个变量加载到一个.mat文件中。我有一行简单的代码:
save draw.mat Output
但我无法找到一种方法来代码'使用变量X'给出的名称而不是'输出',这样我就可以循环处理并在draw.mat中保存多个变量
那么
X = 'Chocolate'
,变量名称保存为巧克力。
我确信它很简单但我在这里找不到解决方案!
答案 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')