我正在创建一个每天分析数据的matlab应用程序。 使用xlsread()
从csv文件读入数据[num, weather, raw]=xlsread('weather.xlsx');
% weather.xlsx is a spreadsheet that holds a list of other files (csv) i
% want to process
for i = 1:length(weather)
fn = [char(weather(i)) '.csv'];
% now read in the weather file, get data from the local weather files
fnOpen = xlsread(fn);
% now process the file to save out the .mat file with the location name
% for example, one file is dallasTX, so I would like that file to be
% saved as dallasTx.mat
% the next is denverCO, and so denverCO.mat, and so on.
% but if I try...
fnSave=[char(weather(i)) '.mat'] ;
save(fnSave, fnOpen) % this doesn't work
% I will be doing quite a bit of processing of the data in another
% application that will open each individual .mat file
end
++++++++++++++ 很抱歉没有提供完整的信息。 我在上面做的时候得到的错误是: 使用保存时出错 参数必须包含字符串。
并且Xiangru和Wolfie,保存(fnSave,' fnOpen')按照你的建议工作。现在我有一个dallasTX.mat文件,里面的变量名是fnOpen。我现在可以用这个了。
感谢您的快速回复。
答案 0 :(得分:1)
如果您在错误消息不起作用时提供错误消息将会很有帮助。
对于这种情况,我认为问题是 save 的语法。你需要做:
HELPDESK-20170813-<django.db.models.fields.AutoField>
此外,您可以使用天气{i}代替char(天气(i))。
答案 1 :(得分:0)
使用命令时从documentation
save(filename, variables)
variables
应如下所述:
要保存的变量名称,指定为一个或多个字符向量或字符串。使用save命令格式时,不需要将输入括在单引号或双引号中。变量可以采用以下形式之一。
这意味着您应该使用
save(fnSave, 'fnOpen');
由于您还想使用存储在变量中的文件名,因此命令语法并不理想,因为您必须使用eval
。在这种情况下,替代选项将是
eval(['save ', fnSave, ' fnOpen']);
如果你有一个固定的文件名(供将来参考),这将更简单
save C:/User/Docs/MyFile.mat fnOpen