matlab中()与{}的区别

例如这句
x = args{1}(:);
是什麽意思啊?
谢谢了

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

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

[ ]
中括号用来构建向量(Vectors)或者是矩阵(Matrices)。如[6.9 9.64 sqrt(-1)] 就是一个有三个元素的向量。[11 12 13; 21 22 23] 是一个二乘三的矩阵. 分号(;)用来结束一行。
中括号的另一个作用是在函数中,分配输出参数。
算例:
A = [ 1 2 3 ]
%A就是一个三个元素的数值数组。中括号用于构建非cell数组。
%数组的引用用小括号
A(1,1)
%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层都需要用大括号引用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-12

.^这是点乘;^是乘法。

直接用乘法的话,是矩阵乘法,也就是说,必须满足前一个矩阵的列数等于后一个矩阵的行数。
使用点乘操作,是使每一个元素相乘,也就是向量或者矩阵中对应元素相乘。

下面是例子:
A=ones(3,3)
A =
1     1     1
1     1     1
1     1     1
>> A^2
ans =
3     3     3
3     3     3
3     3     3
>> A.^2
ans =
1     1     1
1     1     1
1     1     1

扩展资料

在matlab中还有如下类似命令:

点乘(.*)、乘(*);

例:假设现有A、B两个矩阵(先假定它们的这两种操作都是合法的。),乘( A*B )表示矩阵A乘以矩阵B,就是普通的矩阵运算;点乘( A.*B )表示矩阵A的元素与矩阵B 对应的元素 相乘,构成新的矩阵。

点除(./)、除(/)与上述方法类似。

第2个回答  推荐于2017-09-04
()是数组引用符号,{}是元胞引用符号,元宝可以想象为超矩阵,每个元素可以是不同的类型和大小。上述语句表示args第一个元胞元素中的所有子元素。:表示所有元素。本回答被提问者采纳
第3个回答  2010-07-21
>> a=[8 8;8 8]; >> b=[8 8;8 8]; >> a/b ans = 8 1 1 8 >> a./b ans = 8 8 8 8 a/b相当于a乘b的逆 a./b是a的每个元素与b的每个元素对应相除 >> a=[8 8 8...
相似回答