2017-04-25 68 views
0

我读在MATLAB的excelfile与追加单元行到矩阵

[NUM,TXT,RAW]=xlsread(DATENEXCEL,sSheet_Data); 

在excelfile在不同的片材不同datamatrices以下形式

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

您可以在一个单元阵列将它们结合起来。

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