c = setdiff(A, B) 返回在A中有,而B中没有的值,结果向量将以升序排序返回。在集合论中,c = A - B。A和B也可以是字符串细胞数组。
[X,Y] = meshgrid(x,y)
生成采样点的网格,举个例子就明白了x=1:3;y=10:14;[X,Y] = meshgrid(x,y)
X =
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y =
10 10 10
11 11 11
12 12 12
13 13 13
14 14 14
meshgrid的函数应该是这样编出来的:x=x1:d1:x2;y=[y1:d2:y2]';X=ones(size(y))*x;Y=y*ones(size(x))
a= [1 2
3 4]
a(:)=[1
3
2
4]
[r,c,m]=size(A)
输出:r=
3
c=
4
m=
1
也就说它把二维矩阵当作第三维为1的三维矩阵,这也如同我们把n维列向量当作n×1的矩阵一样
blkdiag函数:生成指定对角线元素的矩阵
A = blkdiag(a,b,c,d,...) 函数产生以a,b,c,d,...为对角线元素的矩阵A
10.
find函数用于返回所需要元素的所在位置
11.
b为一维矩阵的话,min是寻找b中的最小值,并返回其坐标和最小值。
>> [x,m]=min(b)
x =0.2311%%x为最小值
m =2%%m为列号,即b(2)为b中的最小值
b为二维矩阵的话,min是按列寻找最小值,并返回其各列的最小值和列号。
>> [x,m]=min(b) x =0.6154 0.1763 0.4103%%x为各列的最小值 m =1 2 3%%m为每个最小值对应的列号
12.
matlab判断2个数组中不同元素--setdiff
13.
B = repmat(A,m,n)将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。B 的维数是 [size(A,1)*m, size(A,2)*n] 。>> A = [1,2;3,4]A =1 23 4>> B = repmat(A,2,3)B =1 2 1 2 1 23 4 3 4 3 41 2 1 2 1 23 4 3 4 3 4
14.
函数sparse()的更常用的用法是用来产生稀疏矩阵,具体语法如下:
S=vsparse(r,c,s,m,n)
其中r和c是我们希望产生的稀疏矩阵的矩阵中非零元素的行和列索引向量。参数s是一个向量,它包含索引对(r,c)对应的数值,m和n是结果矩阵的行维数和列维数。例如:
>> s=sparse( [3 2 3 4 1 ],[ 1 2 2 3 4 ],[1 2 3 4 5],4,4)
s =
(3,1) 1
(2,2) 2
(3,2) 3
(4,3) 4
(1,4) 5
如果要获得完成的矩阵,可以使用full()函数,函数语法:
A=full(s)
例如:
>> a=full(s)
a =
0 0 0 5
0 2 0 0
1 3 0 0
0 0 4 0
15.
A(B): A B都是矩阵
e.g. A=[1 2 3;4 5 6;7 8 9;] B=[1 2;3 4]
>> A(B)
ans = 1 4 7 2
B=[x,y,z]A(B,B)=[xx xy xzyx yy yzzx zy zz]
16.
a=sum(x);%列求和 a=sum(x,2);%行求和 a=sum(x(:));%矩阵求和
17.
1.0000 - 2.0000i 5.0000 - 6.0000i
3.0000 + 4.0000i 7.0000
1.0000 + 2.0000i 5.0000 + 6.0000i
3.0000 - 4.0000i 7.0000
fix(x),floor(x)和ceil(x)函数都是对x取整,只不过取整方向不同而已。
这里的方向是以x轴作为横坐标来看的,向右就是朝着正轴方向,向左就是朝着负轴方向。
fix(x):向0取整(也可以理解为向中间取整)
floor(x):向左取整
ceil(x):向右取整
举例:
4个数:a=3.3、b=3.7、c=-3.3、d=-3.7
fix(a)=3
floor(a)=3
ceil(a)=4
------------------------
fix(b)=3
floor(b)=3
ceil(b)=4
----------------------
fix(c)=-3
floor(c)=-4
ceil(c)=-3
------------------------
fix(d)=-3
floor(d)=-4
ceil(d)=-3