2010-05-05 120 views
1

我想读取由62列和2000行组成的excel 2003文件,然后从2类数据的2000模式中绘制2d树状图作为我在matlab中的绘图。当我运行脚本时,它给了我上面的错误。我不知道为什么。任何人有任何想法,为什么我有上述错误?错误“索引超出矩阵尺寸”

我的数据是在这里: http://rapidshare.com/files/383549074/data.xls

请删除2001列,如果你想利用这些数据进行测试。

,我的代码是在这里:

% Script file: cluster_2d_data.m 

d=2000; n1=22; n2=40; N=62 

Data=xlsread('data.xls','A1:BJ2000'); 

X=Data'; 

R=1:2000; 

C=1:2; 

clustergram(X,'Pdist','euclidean','Linkage','complete','Dimension',2,... 

'ROWLABELS',R,'COLUMNLABELS',C,'Dendrogram',{'color',5}) 
+0

错误发生在哪条线上?你试过调试它吗? – shoosh 2010-05-05 20:33:15

+0

包含此代码的行:clustergram(X,'Pdist','euclidean','Linkage','complete','Dimension',2,...'ROWLABELS',R''COLUMNLABELS',C''树状图',{'color',5}) 代码中的最后一行 – Mola 2010-05-05 20:39:07

+0

当您收到错误信息时,请输入“whos”以查看变量的大小。这将有助于调试。 – 2010-05-05 20:58:06

回答

1

xlsread语句后,你应该得到一个2000x62 double矩阵Data。然后你转置它并分配到X,所以X62x2000矩阵。在属性RowLabelsColumnLabelsclustergram向量应该与您的Data的大小相匹配,但您传递的长度为2000的向量为RowLabels,而长度为2的向量为ColumnLabels。这可能会导致错误。

您正在使用什么版本的MATLAB?它看起来很老,因为你有clustergram作为函数,但在更高版本的生物信息工具箱中它被重新设计为对象。在R2010a版本的代码会产生

ROWLABELS尺寸不匹配数据”

,但我不知道它会在老版本的内容。

尝试删除RowLabelsColumnLabels以及其他属性。你仍然得到错误?

+0

我也有我对'dendrogram'属性值的怀疑。 – Jonas 2010-05-06 04:17:49

+0

我已经删除了RowLabels和ColumnLabels以及e恐怖消失。谢谢Yuk的建议。但为什么我不能拥有这些标签,并且在标签或不标签方面会有什么不同? 谢谢 – Mola 2010-05-06 07:45:05

+0

您当然可以拥有标签,但它们的大小应该与数据矩阵中的行数和列数匹配。尝试'R = 1:62; C = 1:2000;'(尽管它与默认标签相同)。 – yuk 2010-05-06 14:59:15