对于Matlab,从xlsx导入数据,如何将第一行作为变量名称,将列的其余部分作为变量名称的数据

时间:2013-01-03 15:22:34

标签: matlab import xlsx

在我的Excel文件中。每列中的第一行是一个字符串。该列的其余部分是该字符串的数据,即

'time' 
1
2
3
4

我想取excel中的第一行,并将其作为Matlab中的变量名,其余的列数据是该变量的数值数据。所以在Matlab中,时间将是数字1,2,3,4的列向量。

我无法让它发挥作用。

1 个答案:

答案 0 :(得分:2)

怎么样

[val nms] = xlsread( xlsFileName );
assert( size(val,2) == size(nms,2), 'mismatch number of columns and number of names');
for ci=1:size(val,2)
    eval( [ nms{ci}, ' = val(:,ci);' ] ); % name the column
end

是什么让这项工作:

  1. 此代码使用两个输出变量调用xlsread。这种方式xlsread将数值数据放入第一个变量,将文本数据放入第二个变量。有关详细信息,请参阅xlsread doc

  2. 使用eval将值分配给变量(time),该名称存储在另一个变量(nms{1})中。 eval命令的参数是字符串 time = val(:,1);,其中Matlab命令将第一列数据(val(:,1))的值分配给新的变量名为time