我使用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)' –