如何使用循环后面的名称创建变量

时间:2013-09-12 09:50:52

标签: arrays excel matlab

我需要将Excel电子表格中的某些列导入Matlab,并将结果保存在数组中。

例如,假设我有一个3x1单元格数组,其元素是'USD''EUR''GBP'等字符串。

如果我想从网络共享中的3个单独的电子表格导入数据,并将每个电子表格中的数据分别存储在名为'InitialUSD''InitialEUR''InitialGBP'的数组中。

关于如何将数组名称链接到单元格数组中的值的任何指导?

3 个答案:

答案 0 :(得分:3)

你问的是什么How can I create variables A1, A2,...,A10 in a loop?然后,答案是不要这样做......你可以做这样的事情:

for k=1:3
   InitialUSD{k} = xlsread (%spreadsheet nb. k%);
end

假设您使用xlsread从Excel导入数据。将%spreadsheet nb. k%替换为xlsread函数的正确参数。

答案 1 :(得分:3)

你可能想要这样的东西:

currencies = {'USD' 'EUR' 'GBP' };
for index=1:length(currencies)
    assignin('caller',['Initial' currencies{index}],1:index);
end

在这个例子中,我为变量分配了一个向量(1:index),但显然在你的情况下你会分配excel数据(可能是你用xlsread读的)。

答案 2 :(得分:1)

我认为这是一种直截了当的方式:

  1. 从excel文件中读取所有内容
  2. 将标题行中的信息与您感兴趣的信息进行比较
  3. 根据此,选择您想要的数据。
  4. 通过这种方式,您可以得到一个名称列表,以及一个具有相同顺序匹配数据的数组。

    我总是建议这样做,而不是给出变量名称。