2017-04-25 66 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