Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab将文件保存为其他变量中定义的名称_Matlab_Variables_Save - Fatal编程技术网

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

Matlab将文件保存为其他变量中定义的名称,matlab,variables,save,Matlab,Variables,Save,我想在流程循环结束时将多个变量加载到一个.mat文件中。我有一行简单的代码: save draw.mat Output 但是我无法找到一种方法来编码“使用变量X给出的名称”而不是“输出”,这样我就可以循环该过程并在draw.mat中保存多个变量 那么 X = 'Chocolate' 变量名保存为Chocolate 我相信这很简单,但我在这里找不到解决方案 您需要SAVE的函数形式。换句话说,SAVE可以这样调用: save('draw.mat', 'Output1', 'Output2');

我想在流程循环结束时将多个变量加载到一个.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
表单。您可以构建一个结构,其中的字段保存生成的.mat文件中变量的名称

例如:

s = struct();
s.VariableOne = 1;
s.VariableTwo = 2;
save draw.mat -struct s;
文件draw.mat现在将保存两个名为“VariableOne”和“variable2”的1x1双变量

您还可以在一个命令中构建结构:

s = struct('VariableOne', {1}, 'VariableTwo', {2});
或者您可以使用
cell2struct
功能:

data = {1,2};
names = {'VariableOne', 'VariableTwo'};
s = cell2struct(data(:), names(:), 1);

现在您想用其他名称保存它,比如说
B

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

还有:S='draw.mat';保存(S、v1、v2)
B = A;
save('B.mat')