這一節,常用矩陣及向量操作命令將被介紹,更多高級命令請使用命令help查尋,內容如下:
cat連接數組
>> %cat 連接數組 A = [1 2; 3 4] B = [4 5; 6 7] %cat(2, A, B)相當於[A, B];按行連接 cat(2,A,B) %cat(1, A, B)相當於[A; B].按列連接 cat(1,A,B) A = 1 2 3 4 B = 4 5 6 7 ans = 1 2 4 5 3 4 6 7 ans = 1 2 3 4 4 5 6 7
find查找非零元素的索引或滿足某條件值
>> A = [0 1 0 2 3] %向量情況 find(A) A = 0 1 0 2 3 ans = 2 4 5 >> find(A,2) % 返回前2個非0結果 ans = 2 4 >> A = [1,0;0 3] % 矩陣情況,結果為逐列將A的元素進行排序[1 0 0 3],所以結果為 1 4 A = 1 0 0 3 >> find(A) ans = 1 4 >> A = [0 1 2 3 4 5] find(A>2) % 查找滿足某一條件情況 A = 0 1 2 3 4 5 ans = 4 5 6
length計算元素數量
>> % length 計算元素數量 A = [1 2 3] length(A) B = [1 2 3;3 4 5] length(B) %length(a)表示矩陣a的最大的長度,即max(size(a)) 等於3,因為2和3中最大是3; A = 1 2 3 ans = 3 B = 1 2 3 3 4 5 ans = 3
linspace創建規則間隔的向量
>> %linspace 創建向量 用法:linspace(a,b,N) 等同於 [a:(b-a)/N:b] linspace(1,10,5) [1:2.25:10] ans = 1.0000 3.2500 5.5000 7.7500 10.0000 ans = 1.0000 3.2500 5.5000 7.7500 10.0000
logspace創建對數間隔向量
%logspace 創建向量 %用法1.logspace(X1,X2),即在10^X1-10^X2範圍內等距產生50個行向量; %2.logspace(X1,X2,N),即在10^X1-10^X2範圍內等距產生N個行向量。 >> logspace(1,10) logspace(1,10,10) ans = 1.0e+10 * Columns 1 through 5 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 6 through 10 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 11 through 15 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 16 through 20 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 21 through 25 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 26 through 30 0.0000 0.0001 0.0001 0.0001 0.0002 Columns 31 through 35 0.0003 0.0005 0.0008 0.0012 0.0018 Columns 36 through 40 0.0027 0.0041 0.0063 0.0095 0.0146 Columns 41 through 45 0.0222 0.0339 0.0518 0.0791 0.1207 Columns 46 through 50 0.1842 0.2812 0.4292 0.6551 1.0000 ans = 1.0e+10 * Columns 1 through 5 0.0000 0.0000 0.0000 0.0000 0.0000 Columns 6 through 10 0.0001 0.0010 0.0100 0.1000 1.0000
max返回最大的元素
>> %C = max(A) 返回一個數組各不同維中的最大元素。 %[Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號。 %如果A是一個向量,max(A)返回A中的最大元素。 %如果A是一個矩陣,max(A)將A的每一列作為一個向量,返回一個行向量,向量的第i個元素是矩陣A的第i列上的最大值。 A = [1 3 5; 3 9 0; 9 2 1] max(A) [Y,I] = max(A) A = 1 3 5 3 9 0 9 2 1 ans = 9 9 5 Y = 9 9 5 I = 3 2 1
min返回最小的元素(與max操作一樣)
prod返回列向量的乘積
>> %B = prod(A);將A矩陣不同維的元素的乘積返回到矩陣B。 %若A為向量,返回的是其所有元素的積; %若A為矩陣,返回的是按列向量的所有元素的積,然後組成一行向量。 A = [1 2 3] prod(A) A = [1 2 3; 4 5 6] prod(A) A = 1 2 3 ans = 6 A = 1 2 3 4 5 6 ans = 4 10 18
reshape改變大小
%reshape 元素相同情況下,對A逐列掃描,對B逐列填充 >> A = [1 2 3; 2 3 4; 3 4 5; 6 7 8; 1 2 3 ] A = 1 2 3 2 3 4 3 4 5 6 7 8 1 2 3 >> size(A) ans = 5 3 >> reshape(A,3,5) ans = 1 6 3 2 5 2 1 4 3 8 3 2 7 4 3
size計算數組大小
>> %size 獲取矩陣的行數和列數 註:length()=max(size()). A = [1 2 3] size(A) A = [1 2 3 ; 2 3 4] size(A) A = 1 2 3 ans = 1 3 A = 1 2 3 2 3 4 ans = 2 3
sort對每列進行排序
%sort 默認情況下,對向量或矩陣(案列)進行升序排序 >> A = [1 2 3] sort(A) A = [1 2 3 ; 3 4 1] sort(A) A = 1 2 3 ans = 1 2 3 A = 1 2 3 3 4 1 ans = 1 2 1 3 4 3 >> sort(A,2))% 對行向量排序 ans = 1 2 3 1 3 4
sum對每列進行求和
>> % sum 默認情況下,計算行向量的累加結果 A = [1 2 3] sum(A) % 默認按行向量 A = 1 2 3 ans = 6 >> sum(A,2) % 按行向量 ans = 6 >> sum(A,1) % 按列向量 ans = 1 2 3
eye創建一個單位矩陣
>> %Y = eye(n):返回n*n單位矩陣; %Y = eye(m,n):返回m*n單位矩陣; eye(3) ans = 1 0 0 0 1 0 0 0 1 >> eye(3,4) ans = 1 0 0 0 0 1 0 0 0 0 1 0
ones創建一個數組
>> %ones的作用是產生全1矩陣,ones(N)是產生一個N*N的全1矩陣 ones(3) ans = 1 1 1 1 1 1 1 1 1 >> ones(3,2) ans = 1 1 1 1 1 1
zeros創建一個零的數組
>> %zeros的作用是產生全0矩陣,zeors(N)是產生一個N*N的全0矩陣 zeros(3) ans = 0 0 0 0 0 0 0 0 0 >> zeros(2,4) ans = 0 0 0 0 0 0 0 0
real計算複數的實數部分
>> %real 計算複數實數部分 A = 1 - 2i real(A) A = 1.0000 - 2.0000i ans = 1
imag計算複數虛數部分
>> %imag 計算複數虛數部分 A = 1 - 2i imag(A) A = 1.0000 - 2.0000i ans = -2
abs計算絕對值或者對複數求模(複數實部與虛部的平方和的算術平方根:abs(X) =sqrt(real(X).^2 + imag(X).^2))
>> %abs 計算絕對值或者對複數求模 A = -3 abs(A) A = -3 ans = 3 >> A = [1 -2] abs(A) A = 1 -2 ans = 1 2 >> A = 1 - 2i abs(A) A = 1.0000 - 2.0000i ans = 2.2361
rand生成均勻分布隨機數
>> % rand 生成均勻分布隨機數 % rand(n):生成0到1之間的n階隨機數方陣 % rand(m,n):生成0到1之間的m×n的隨機數矩陣 rand(3) ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 >> rand(3,4) ans = 0.9649 0.9572 0.1419 0.7922 0.1576 0.4854 0.4218 0.9595 0.9706 0.8003 0.9157 0.6557
randn生成標準正態分布隨機數,用法與rand一致
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/229580.html
微信掃一掃
支付寶掃一掃