matlab 數組創建及尋訪


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM