zoukankan      html  css  js  c++  java
  • 【转】Matlab中的括号()[] {}

    Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢?
    [ ]
    中括号用来构建向量(Vectors)或者是矩阵(Matrices)。如
    [6.9 9.64 sqrt(-1)] 就是一个有三个元素的向量。 [11 12 13; 21 22 23] 是一个二乘三的矩阵
    中括号的另一个作用是在函数中,分配输出参数。

    { }
    大括号,用于cell型的数组的分配或引用。
    比如
    A(2,1) = {[1 2 3; 4 5 6]}, or A{2,2} = ('str')

    ( )
    小括号,用于引用数组的元素。
    如 X(3)就是X的第三个元素。 X([1 2 3])就是X的头三个元素。

    算例:
    A = [ 1 2 3 ]
    %A就是一个三个元素的数值数组。中括号用于构建非cell数组。
    %数组的引用用小括号
    A(1,2)
    %A(1,2)得到A数组第一行第二列的元素。

    B = {A A}
    %B为1一行两列的数组,数组的元素为cell
    %数组的引用依然用小括号
    B(1)
    %这时B(1)为一个cell
    %cell内容的引用需要用大括号。
    %B{1}则为cell 1的内容,此时为 1 2 3
    %cell内容为数值数组的,继续用小括号引用其内容

    B{1}(1,3)
    %B{1}(1,3)的内容为3.

    D={B B}

    D =

        {1x2 cell}    {1x2 cell}

    此时D的某个元素内容的引用则为
    D{1}{1,2}(1)
    %cell层都需要用大括号引用。
    cell数组是MATLAB的一种特殊矩阵,或者叫做广义矩阵。矩阵的每个元素可以是任何一种数据类型的常数、常量或者矩阵,所以矩阵的每个的元素叫做cell。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。

    通过小括号()里面加下标,访问cell数组中的数据,返回的是对应的cell。

    通过大括号{}里面加下标,访问cell数组中的数据,返回的是对应cell的内容。看一下下面的例子就明白了!

    a={20,'matlab',ones(2,3)}
    a = 
    [20] 'matlab' [2x3 double]
    >> a(3) %查看cell数组a中的第三个cell
    ans = 
    [2x3 double]
    >> class(a(3)) %查看cell数组a中第三个cell的类型
    ans =
    cell
    >> a{3} %查看cell数组a中第三个cell的内容
    ans =
    1 1 1
    1 1 1
    >> class(a{3}) %查看cell数组a中第三个cell的内容的类型
    ans =
    double
    >> a(3)=[] %删除cell数组a中的第三个cell
    a = 
    [20] 'matlab'
    >> a{2}=[] %清空cell数组a中第二个cell的内容,并没有删除
    a = 
    [20] []
  • 相关阅读:
    邮件与短信
    面向对象--第二部分
    #实现一个文件的拷贝功能,注意:大文件的问题
    link标签和script标签跑到body下面,网页顶部有空白
    svn利用TortoiseSVN忽略文件或文件夹
    CS6破解
    获得指定元素的透明度值
    IE6不支持position:fixed属性
    jQuery获取自身HTML
    margin负值
  • 原文地址:https://www.cnblogs.com/xiongyunqi/p/3737689.html
Copyright © 2011-2022 走看看