我在函数mavolcanoplot.m
中遇到了以下表达式:
X = X.(':')(':');
我用一个简单的例子X = [1 2 3]
尝试了它,但后来我得到了
来自非结构数组对象的结构内容引用。
由于我不知道表达式的作用,我不知道测试它应该是什么X
。
有谁能告诉我这个表达是做什么的?
答案 0 :(得分:3)
对DataMatrix对象使用点索引时,可以使用单引号
(':')
内的冒号指定所有行或所有列。
看一下这个例子:
import bioma.data.*
dmo = DataMatrix(rand(3,3), {'A', 'B', 'C'}, {'X','Y','Z'})
dmo =
X Y Z
A 0.69908 0.54722 0.25751
B 0.8909 0.13862 0.84072
C 0.95929 0.14929 0.25428
>> %to extract all rows and first two columns (X and Y)
>> %you can specify any of column scripts and column labels
>> %same goes for rows
>> dmo.(':')(1:2) % or dmo.(':')({'X','Y'})
ans =
0.6991 0.5472
0.8909 0.1386
0.9593 0.1493
>> dmo.(':') %or dmo.(':')(':') to extract all rows and columns
ans =
0.6991 0.5472 0.2575
0.8909 0.1386 0.8407
0.9593 0.1493 0.2543
此外,指定不存在的行/列标签会产生1
,即
>> dmo.('e')('X')
ans =
1
和end
不能用于索引。
>> dmo.(end)('X')
Error: The end operator must be used within an array index
expression.