1.matlab的默認維度是列,且設置為dim=1,所以一些庫函數對矩陣的操作是按列向量來的,比如,對于矩陣data,sum(data,1)與sum(data)的結果是一致的,對data的每一列元素求和,得到的是一個行向量,而sum(data,2)則是按行求和,得到的是一個列向量。
2.平常遇到的一些函數
find函數: Input:find([1,2,0,0,5,7,0]) Out:[1,2,5,7] 返回非零元素所在的下標
ismember函數:ismember(A,k) Input:ismember([1,2,1,1,3,5,1,7],1) Out:[1,0,1,1,0,0,1,0] 若A中的元素與k相等,則返回1,否則返回零,得到一個與A的維度相同的數據
eig函數: 對于[V,D]=eig(A) 返回的V表示A的各個特征向量構成的矩陣, 返回的D表示A的特征值構成的一個對角矩陣, A、V、D的維度都是一樣的。 A*V=V*D
對于[V,D]=eig(A,B) 返回的V、D也是廣義的特征向量和特征值 V、D、A、B的維度也都是一樣的 A*V=B*V*D
norm函數:計算歐式距離 用法:n=norm(A,p)
1.如果A是一個向量,A=[-2,3,1] 則norm(A)與norm(A,2)的結果是一樣的 norm(A,1)=|-2|+|3|+|1|=6
2.如果A是一個矩陣 A= 2 0 1 1 1 0 3 3 0 則norm(A)的結果是A的最大奇異值,與norm(A,2)的結果一樣。 norm(A,1)返回A中最大列和
3.numel(a)返回的結果是數組a里面元素的個數。在python中,則是a.size
4.matlab中try…catch…end,可以使得出錯的代碼不影響后面代碼的繼續執行,也可以檢查、排查、解決程序的一些錯誤,增強代碼的魯棒性和可靠性。
語法:try % the statements you wish to trycatch % what to do if an error occursend5.matlab的取整函數有fix (只取整數部分) , floor (小于該數的最大整數) , ceil (大于該數的最小整數) , round (四舍五入取整)。
例如:fix(3.4)=3 , fix(3.4)=3floor(3.4)=3 , floor(3.6)=3ceil(3.4)=4 , ceil(3.6)=4round(3.4)=3 , round(3.6)=4且round(q,k) 可以對q作保留小數點后k位的四舍五入6.在matlab中,對于一個方陣A,A^2指矩陣相乘,A.^2則是指A的每個元素都平方。在python中, * 表示矩陣點乘,numpy.dot表示矩陣相乘。
新聞熱點
疑難解答