1 一維數組的創建
a)遞增/遞減型一維數組的創建(函數的自變量/for循環中循環自變量)
i 冒號生成法 x=a:inc:b ps:inc可省略,默認為1.
ii 線性(對數)定點法 x=linspace(a,b,n) 或 x=logspace(a,b,n) ps:n為總采樣點數,一維數組的長度。
b)其他類型一維數組的創建
i 逐個元素輸入 x=[2.2,1.2,4, pi/2,-1] ps:創建方式中括號[],區別於方法圓括號()。
ii matlab函數生成法 rand(1,n),ones(1,n)等
2 二維數組的創建
i 小規模數組的直接輸入(指令窗輸入)
a) 整個輸入數組收尾必須加方括號“[]”;
b)數組的行與行之間必須用分號“ ; ”或回車鍵[Enter]隔離;“ ; ”在方括號“[]”內時,它是數組行間的分隔符。“ ; ”在指令后的結束符時,將不在屏幕上顯示該指令執行后的結果。
c)數組元素必須由逗號“,”或空格號分隔。
ii 中規模數組的數組編輯器創建 主頁||變量||創建變量,輸入數據。ps:如該變量后續還需要調用,可以將其保存為.mat文件。
iii 中規模數組的M文件創建 在文件編輯調試器中,空白填寫框中輸入所需數組,保存文件(.m格式)。
iv Matlab函數創建數組
a)非隨機標准數組指令
diag:對角數組;eye:單位數組;magic:魔方數組;ones:全1數組;rand:均勻分布隨機數組;randi:均勻分布的整數數組;randn:正態分布隨機數組;randperm:1~n隨機排列整數;randsrc:指定字符集上生成均勻分布的隨機數組;zeros:全零數組
am=magic(3)
am=8 1 6
3 5 7
4 9 2
ad=diag(am)
ad=8
5
2
add=diag(diag(am)) %am矩陣對角元陣
add= 8 0 0
0 5 0
0 0 2
b) 隨機數組生成
au=rand(1,5) %元素在[0,1]中均勻分布的(1*5)隨機數組
au=0.5468 0.5211 0.2316 0.4889 0.6241
ai=randi([-3,4],2,8) %元素在[-3,4]中整數的均勻分布(2*8)隨機數組
ai=2 -1 -3 4 -3 -1 -2 -3
0 4 4 3 -1 2 2 2
as=randsrc(3,12,[-3,-1,1,3],1) %在[-3,-1,1,3]字符集上產生(3*12)均勻分布數組;隨機發生器的狀態量設置為1
as= -1 -1 -3 1 -3 1 -3 3 3 -3 -3 1
1 -3 -1 -1 3 -1 -3 -1 3 -3 -1 1
-3 -3 -1 1 -3 1 3 1 -3 3 3 -1
ap=randperm(8) %8個正整數隨機排列
ap=6 4 7 3 2 8 5 1
2 二維數組元素的標識和尋訪
a)數組的維數(Dimension)和ndims指令 給出數組的維數 ndims(A)
b)數組的大小(size)和size指令 不管A數組的維數是多少,size(A)可給出A各維的大小,而指令length(A)可給出所有維中的最大長度。即length(A)等價於max(size(A))。
全下標法 A(r,c),A(r,:),A(:,c)
單下標法A(:) “單下標全元素”尋訪由A的各列按自左到右的次序,首尾相接而生成“一維長列”數組
A(s)“單下標”尋訪,生成“s指定的”一維數組。s若是“行列組”(或“列數組”),則A(s)就是長度相同的“行數組”(或“列數組”)
邏輯標識法 A(L) “邏輯1”尋訪,生成“一維”列數組:由與A同樣大小的“邏輯數據”L中“1“元素選出A的對應元素;按”單下標“次序排成長列組成
a=zeros(2,6)
a(:)=1:12
a=1 3 5 7 9 11
2 4 6 8 10 12
a8=a(8)
a8=8
a311=a([3,11])
a311=3 11
邏輯1尋訪:賦值和獲取
L=A<3 %賦值號右邊:關系比較產生邏輯結果。產生於A維數大小相同的“0,1”邏輯數組;1表示為“真”,在此L數組中取1的位置對應的A數組元素小於3
A(L)=NaN %邏輯1法尋訪:把邏輯1標識位置的元素賦為“非數”。
L=1 0 0 0 0 0 1
1 0 0 0 0 0 1
1 1 1 1 1 1 0
A= NaN 3 5 7 9 11 NaN
NaN 4 6 8 10 12 NaN
NaN NaN NaN NaN NaN NaN 37
