我使用getgeodata()
方法从NCBI获取微阵列数据。这返回结构,具有字段数据,它是DataMatrix,每列代表不同的样本和代表探针的行。出于某种原因,尽管在数据矩阵的每个细胞本身是一个1x1的二维条码,因此,当我尝试做这样的事情:展平数据矩阵的DataMatrix
am_accession = getgeodata('GSE2034')
am_data_adj = rmabackadj(am_accession.Data)
Matlab的引发错误:
Error using rmabackadj (line 80) Probe intensity values must be numeric and real.
我想我需要压扁DataMatrix,以便1x1 DataMatrices中的值是较大DataMatrix中的值,但是,我不确定如何在Matlab中完成此操作。
任何想法如何做到这一点(惯用)?
这是一个有趣的数据结构;我没有来过它。你可以做像MyData(:''columnname')',或'MyData([1:5],{'columnname1','columnname2'})''。这很酷,很高兴知道这存在。 –
似乎与R数据帧类似。 DataMatrix中的DataMatrix虽然即使以这种方式存储,也很奇怪 - 它使变量检查视图变得无用。 – merv
如果您希望获得仍保留按行/列名查询的子集(即它是同一类型的子集)的子集,那么这很有意义。真正的弱点是matlab无法链接操作符,所以你必须在整个地方分配临时变量,也就是'd = Data(1:10,1:10); d.double()'而不是'Data(1:10,1:10).double()'或者甚至是'Data.double()(1:10,1:10)' –