将单元格行追加到矩阵

时间:2017-04-25 12:18:41

标签: excel matlab

我正在使用

在matlab中阅读excelfile
[NUM,TXT,RAW]=xlsread(DATENEXCEL,sSheet_Data);

在excelfile中,不同表格中的不同数据矩阵采用以下形式

Date    Firm1 Firm2 Firm3  ...
1.1.16  12    12    12
...     ...   ...   ...

目前,我使用NUM对象处理纯数据,使用TXT对象处理标题行。我的第一个问题是如何将标题行与数据行组合在一起。循环不起作用,因为我使用

预定义数据矩阵
daten=zeros([length(sDatesequence) size(RAW,2)]);

因为我希望能够将来自不同来源的更多数据添加到该对象中。但是,使用零预定义会导致Matlab期望双精度而不是字符。使用cell2mat转换单元阵列TXT会产生令人不满意的结果:

cell2mat(TXT(1,:))=Firm1Firm2Firm3...

因此只有一个长字符串向量。

问题:还有其他方法可以组合字符向量和双矩阵吗?

此致 理查德

1 个答案:

答案 0 :(得分:1)

您可以将它们组合在一个单元格数组中。

c{1,1} = 'Firm1';
c{1,2} = datavector;
c{2,1} = 'Firm2';
c{2,2} = datavector;

但据我所知,不可能将文本标题添加到数字矩阵中,除非您使用typcasting进行操作。但我不建议这样做。

d(1:8)='Firm1   '; %must have exactly eight characters (a double has a length of 8 bytes)
y = typecast(uint8(d),'double') %now you have a number that would fit in a matrix of doubles
x=char(typecast(y,'uint8')) %now it's converted back to text