在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}