MATLAB中圆括号(),中括号[],大括号{}的使用方法总结

在Matlab程序编写过程中,总会遇到不同的括号的使用方法,让人很是迷糊,这里对于圆括号(),中括号[],大括号{}的使用方法进行总结,文档来源自百度经验。

一、圆括号()使用方法

1、圆括号常常跟在数组后,里面是数组的下标,来访问数组元素。

例如:A(3)表示A中的第三个元素,A([2,4,5])返回列表[A(2),A(4),A(5)]

K>> A=[10,20,30,40,50];
K>> A(3)

ans =

    30

K>> A([2,4,5])

ans =

    20    40    50

2、使用圆括号访问数组元素,还可以使用冒号:表示全部。

例如:B(:,2)表示第二列的全部元素,B(1,:)表示第一行的全部元素,B(:)表示B中所有的元素

K>> B=[1,2,3;4,5,6;7,8,9]

B =

     1     2     3
     4     5     6
     7     8     9

K>> B(:,2)

ans =

     2
     5
     8

K>> B(1,:)

ans =

     1     2     3

K>> B(:)

ans =

     1
     4
     7
     2
     5
     8
     3
     6
     9

由于数组下标可以是列表,A(1:3)与A([1,2,3])相同,返回[A(1),A(2),A(3)],A(5:-1:1)将5个元素的行向量A逆置了。

K>> A(1:3)

ans =

    10    20    30

K>> A(5:-1:1)

ans =

    50    40    30    20    10

3、圆括号跟在函数后,填写函数的形参

K>> ones(3)

ans =

     1     1     1
     1     1     1
     1     1     1

4、改变运算的优先级 

K>> (2+3)*5

ans =

    25

二、中括号[]使用方法 

1、用来表示数组

[]中若干项用空格或者逗号隔开,可以表示一个行向量。

K>> [3,5.5,7,9]

ans =

    3.0000    5.5000    7.0000    9.0000

 但要注意,如果数组中有项是表达式,不能随意空格。

比如12-3是一个元素,12 -3是两个

K>> [12-3 15+9 3*4]

ans =

     9    24    12

K>> [12 -3 15+9 3*4]

ans =

    12    -3    24    12

使用中括号[]表示数组时,分号;用来隔开行。用法如下:

K>> [1 2 3;4 5 6]

ans =

     1     2     3
     4     5     6

K>> [1 2;3 4;5 6]'

ans =

     1     3     5
     2     4     6

2、中括号可以用于拼接数组

如下我们有两个数组A和B。

[A,B]相当于水平拼接A和B,即horzcat(A,B)

[A;B]相当于垂直拼接A和B,即vertcat(A,B)

K>> A=ones(3)

A =

     1     1     1
     1     1     1
     1     1     1

K>> B=rand(3)

B =

    0.2069    0.1843    0.4961
    0.4906    0.3008    0.9167
    0.1923    0.5922    0.6469

K>> [A,B]

ans =

    1.0000    1.0000    1.0000    0.2069    0.1843    0.4961
    1.0000    1.0000    1.0000    0.4906    0.3008    0.9167
    1.0000    1.0000    1.0000    0.1923    0.5922    0.6469

K>> [A;B]

ans =

    1.0000    1.0000    1.0000
    1.0000    1.0000    1.0000
    1.0000    1.0000    1.0000
    0.2069    0.1843    0.4961
    0.4906    0.3008    0.9167
    0.1923    0.5922    0.6469

使用中括号[]可以进行连续/多层拼接。

比如[C,[A;B]],A与B上下拼接,C与[A;B]左右拼接,效果如下:

K>> [C,[A;B]]

ans =

    3.0000    3.0000    1.0000    1.0000    1.0000
    3.0000    3.0000    1.0000    1.0000    1.0000
    3.0000    3.0000    1.0000    1.0000    1.0000
    3.0000    3.0000    0.2069    0.1843    0.4961
    3.0000    3.0000    0.4906    0.3008    0.9167
    3.0000    3.0000    0.1923    0.5922    0.6469

3、中括号可以用来清空或删除元素

只有中括号[]表示一个空数组。

A(1,:)=[]表示删去A的第一行;

A(:,1)=[]表示删去A的第一列。

K>> A=[1 2 3;4 5 6;7 8 9]

A =

     1     2     3
     4     5     6
     7     8     9

K>> A(1,:)=[]

A =

     4     5     6
     7     8     9

K>> A(:,1)=[]

A =

     5     6
     8     9

4、用来接收有多个返回值的函数

例如:[C,ia]=setdiff(......)接收两个返回值,存入列表C和列表ia中。

K>> A=[1 2 3 5 7];
K>> B=[2 5 6 8];
K>> [C,ia]=setdiff(A,B)

C =

     1     3     7


ia =

     1
     3
     5

三、大括号{}使用方法

1、给元胞数组赋值

例如:A是一个2*2元胞数组cell,使用A(1,1)={[2,3;4,5]}来将A(1,1)赋值为等号右边的列表。

K>> A=cell(2)

A =

  2×2 cell 数组

    {0×0 double}    {0×0 double}
    {0×0 double}    {0×0 double}

K>> A(1,1)={[2,3;4,5]}

A =

  2×2 cell 数组

    {2×2 double}    {0×0 double}
    {0×0 double}    {0×0 double}

给元胞数组中的元素赋值,有两种写法:一是A{i,j}=.... 二是A(i,j)=.....

K>> A{1,2}='12www'

A =

  2×2 cell 数组

    {2×2 double}    {'12www'   }
    {0×0 double}    {0×0 double}

 

  • 144
    点赞
  • 691
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值