2

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

save draw.mat Output

但我无法找到一种方法来编码“使用变量 X 给出的名称”而不是“输出”,这样我就可以循环该过程并将多个变量保存在 draw.mat

那么那么

X = 'Chocolate'

变量名称保存为 Chocolate。

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

4

3 回答 3

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 参考页面包含完整的详细信息。

于 2012-06-27T10:56:59.983 回答
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);
于 2012-06-27T11:01:06.727 回答
0

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

现在你想用其他名字保存它说B

B = A;
save('B.mat')
于 2017-01-03T00:24:24.873 回答