我正在使用
在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...
因此只有一个长字符串向量。
问题:还有其他方法可以组合字符向量和双矩阵吗?
此致 理查德
答案 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