(matlab)字符串中的唯一变量名

时间:2014-10-18 20:01:32

标签: string matlab vector import

我有一个简单的脚本可以从具有一些基本文件名(YYYYMMDD)和标题的文件中导入一些光谱数据。我目前的方法将实际光谱强度推向某些矢量> rawspectra'我可以通过`rawspectra {m,n} .data(q,r)

调用数据

在脚本中,我手动指定基本文件名并将其保存为字符串' filebase'。

我想在文件库中添加rawspectra向量的名称,这样我就可以使用该脚本将在不同日期获取的文件导入到同一工作区而不会覆盖rawspectra向量(并且还可以轻松理解哪些向量附加到哪些实验条件。我可以通过手动重命名向量来轻松完成此操作,但我宁愿自动进行此操作。

我的输入脚本如下:

%for the importation of multiple sequential files, starting at startfile
%and ending at numfiles.  All raw scans are subsequently plotted.

numfiles = input('How many spectra?');
startfile = input('What is the starting file number?');
numberspectra = numfiles - (startfile - 1);
filebase = strcat(num2str(input('what is the base file number?')),'_');
rawspectra = cell(startfile, numberspectra);



for k= startfile:numberspectra
filename = strcat(filebase,sprintf('%.3d.txt', k));
%eval(strcat(filebase,'rawspectra')){k} = importdata(filename); - This does not work.
rawspectra{k} = importdata(filename);
figure;
plot(rawspectra{1,k}.data(:,1),rawspectra{1,k}.data(:,2))
end  

如果你们中的任何人可以帮助我完成一项看似简单的任务,我将非常感激。基本上,我想要' filebase'走在&rawcpectra'面前。然后在循环中用k ++递增。

谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不

rawspectra(k) = importdata(filename);
rawspectra(k).filebase = filebase;