Matlab向量操作myVector是什么。(':')(':')做什么?

时间:2017-09-29 07:48:03

标签: matlab vector

我在函数mavolcanoplot.m中遇到了以下表达式:

X = X.(':')(':');

我用一个简单的例子X = [1 2 3]尝试了它,但后来我得到了

  

来自非结构数组对象的结构内容引用。

由于我不知道表达式的作用,我不知道测试它应该是什么X

有谁能告诉我这个表达是做什么的?

1 个答案:

答案 0 :(得分:3)

根据documentation

  

对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.