如何在循环内保存除一个变量之外的所有变量?

时间:2016-02-01 12:14:02

标签: matlab save eval

我正在尝试保存除循环内的所有变量。但错误或错误的文件扩展名始终是MATLAB返回的答案。 我哪里错了?

for SESSION=1:3
    for trial_number=1:10
        eval(['save data_',num2str(SESSION),'_trial_',num2str(trial_number),'.mat'...
                            ,'-regexp','^(?!(RESPONSE)$). ']);
    end
end

1 个答案:

答案 0 :(得分:2)

你想要做的直接问题是,在连接字符串时,你未能在文件名和PK参数之间放置一个空格('')

但是,我建议你利用save的能力来获取多个参数来清理事物并防止不必要的字符串连接:

-regexp

其中save(filename, variablename) 是* .mat文件的路径,filename是表示您要保存的工作空间中的变量的字符串。

您还可以将variablename标记值传递给-regexp函数。 (以下示例假设您的正则表达式是正确的。)

save

你可以接近这个的另一种方式(如果你不喜欢正则表达式或你的匹配对于排除多个值来说太难了),就是得到工作区中所有变量的列表,删除我不喜欢的那个变量。我想保存,并明确地将所有其他变量名称传递给output_file = sprintf('data_%d_trial_%d.mat', SESSION, trial_number); save(output_file, '-regexp', '^(?!(RESPONSE)$.') 函数。

save