如何在循环中保存除一个变量之外的所有变量?
How to save all the variables except one inside a loop?
我试图在循环中保存除一个变量之外的所有变量。但是一个错误,或者一个错误的文件扩展名,总是 MATLAB returns 我的答案。
我哪里错了?
for SESSION=1:3
for trial_number=1:10
eval(['save data_',num2str(SESSION),'_trial_',num2str(trial_number),'.mat'...
,'-regexp','^(?!(RESPONSE)$). ']);
end
end
direct 与您尝试做的事情有关的问题是,当连接您的字符串时,您未能在文件名和你的 -regexp
参数。
但是,我建议您利用 save
的能力来获取多个参数来清理并防止不必要的字符串连接:
save(filename, variablename)
其中 filename
是 *.mat 文件的路径,variablename
是代表您要保存的作品space 中的变量的字符串。
您还可以将 -regexp
标志值传递给 save
函数。 (以下示例假设您的正则表达式是正确的)。
output_file = sprintf('data_%d_trial_%d.mat', SESSION, trial_number);
save(output_file, '-regexp', '^(?!(RESPONSE)$.')
另一种方法(如果您不喜欢正则表达式或者您的匹配太难排除多个值)是获取工作中所有变量的列表space,删除我不想保存的那个,并将所有其他变量名显式传递给 save
函数。
variables = who;
toexclude = {'variable1', 'variable2'};
variables = variables(~ismember(variables, toexclude));
save(output_file, variables{:});
我试图在循环中保存除一个变量之外的所有变量。但是一个错误,或者一个错误的文件扩展名,总是 MATLAB returns 我的答案。 我哪里错了?
for SESSION=1:3
for trial_number=1:10
eval(['save data_',num2str(SESSION),'_trial_',num2str(trial_number),'.mat'...
,'-regexp','^(?!(RESPONSE)$). ']);
end
end
direct 与您尝试做的事情有关的问题是,当连接您的字符串时,您未能在文件名和你的 -regexp
参数。
但是,我建议您利用 save
的能力来获取多个参数来清理并防止不必要的字符串连接:
save(filename, variablename)
其中 filename
是 *.mat 文件的路径,variablename
是代表您要保存的作品space 中的变量的字符串。
您还可以将 -regexp
标志值传递给 save
函数。 (以下示例假设您的正则表达式是正确的)。
output_file = sprintf('data_%d_trial_%d.mat', SESSION, trial_number);
save(output_file, '-regexp', '^(?!(RESPONSE)$.')
另一种方法(如果您不喜欢正则表达式或者您的匹配太难排除多个值)是获取工作中所有变量的列表space,删除我不想保存的那个,并将所有其他变量名显式传递给 save
函数。
variables = who;
toexclude = {'variable1', 'variable2'};
variables = variables(~ismember(variables, toexclude));
save(output_file, variables{:});