1.matlab中矩阵A(:)是什么意思
A(:) reshapes all elements of A into a single column vector. This has no effect if A is already a column vector.
A(:) 重塑将 a 的所有元素转换为单个列向量。如果 a 已经是列向量, 则不会产生任何影响。
2.matlab乘与点乘的区别 (与. ^与.^)
1.点乘是数组的运算,不加点是矩阵的运算;
2.点乘要求参与运算的两个量两必须是维数相同,是对应元素的相乘;
而不加点表示的是矩阵相乘(除的时候通过逆矩阵来实现),要求内维相同,
也就是前一个矩阵的列的维数等于后一个矩阵的行的维数。
例如A,B分别为两个矩阵,则:
A.*B表示的是两个矩阵的对应元素相乘,
其中生成的同阶矩阵C的对应的矩阵元素为:
C(i,j)=A(i,j)*B(i,j);
而如果A*B的话,则是正常的矩阵相乘,并非是对应的元素相乘。这一点相当重要。
举个简单的例子
例如:
x=[1 1;1 1];
x.^2
ans =
1 1
1 1
x^2
ans =
2 2
2 2
3.matlab find函数详解
这个函数是为了找到矩阵或者是数组,向量中的非零元素。下面一大段英文没耐心看。看看例子就行了。
第一个用法是
ndices = find(X)
X = [1 0 4 -3 0 0 0 8 6];
indices = find(X)
返回x中非零元素的序号从1开始
indices =
1 3 4 8 9
若x是个矩阵呢?
x= [1 0 ;1 5 ;4 0 ]
find(x)得到的是
1
2
3
5
是一列矢量,非零元素的序号是按一列一列的算
第二个用法
ind = find(X, k)
ind = find(X, k, 'first')
ind = find(X, k, 'last')
这三个是找前K个非零元素,前两式功能一致,第三式指从最后一个元素算起。
重点说一下
第三个用法
[row,col] = find(X, ...)
[row,col,v] = find(X, ...)