您好,登錄后才能下訂單哦!
本系列教程來源于出版設計《基于MATLAB編程基礎與典型應用書籍》,如涉及版權問題,請聯系:156204968@qq.com。 出版社:人民郵電出版社, 頁數:525。
本系列教程目前基于MATLABR2006a,可能對于更高級版本的功能和函數有差異,教程中如有問題,請聯系:156204968@qq.com
###2.3.1 多維數組的創建
在MATLAB中創建和使用一維和兩維數組十分靈活,同樣MATLAB也提供了靈活多樣的創建多維數組的方法,使得用戶可以根據自己所創建多維數組的特征選取不同的創建方法。其中最常用的創建方法有:第一通過“全下標”元素賦值方式創建多維數組;第二由函數ones、zeros、rand和randn直接創建多維數組;第三借助構造函數創建多維數組。下面通過示例講解如何使用不同的方法創建多維數組。
(1)通過“全下標”元素賦值方式創建多維數組
【例2.15】“全下標”方式創建多維數組
在MATLAB命令行窗口中輸入以下命令,創建一個二維的四階魔方陣:>> A=magic(4) %生成一個二維的四階魔方陣
以矩陣A為基礎,通過直接定義數組的第三維的方式,創建一個三維數組。在命令窗口中輸入:>> A(:,:,2)=rand(4) %四階的隨機陣
上述語句的執行結果如下所示。A(:,:,1) =<br/>16 2 3 13<br/>5 11 10 8<br/>9 7 6 12<br/>4 14 15 1
A(:,:,2) =<br/>0.4451 0.8462 0.8381 0.8318<br/>0.9318 0.5252 0.0196 0.5028<br/>0.4660 0.2026 0.6813 0.7095<br/>0.4186 0.6721 0.3795 0.4289
(2)由函數ones、zeros、rand和randn
直接創建多維數組
前面介紹到了使用函數ones、zeros、rand和randn
可以直接生成二維數組,除了生成二維數組的功能外,這些函數還可以生成多維數組。
【例2.16】用函數
ones、zeros、rand和randn
直接創建三維隨機數組>> A=rand(4,5,3) %創建三維隨機數組
>> B=ones(4,2,6) %創建三維的單位矩陣
>> C=zeros(4,6,8); %創建三維的零值矩陣
(3)借助構造函數創建多維數組 多維數組的構造函數很多,如 cat、repmat、reshape 等,在這里主要介紹幾個常用的構造函數。表2.5所示為使用cat, repmat和reshape 函數構造多維數組的函數調用格式和函數描述。 |
函數名 | 調用格式 | 函數描述 |
---|---|---|---|
Cat |
A=cat(n,A1,A2,…,Am) |
n=1和n=2時分別構造[A1;A2]和[A1,A2],它們都是二維數組,而n=3時可以構造出三維數組 | |
repmat |
repmat(p,行 列 頁 ……) |
第一個輸入變量p是用來放置的模塊數組,后面的變量是要放置指定的維數。 | |
reshape |
reshape(p,行 列 頁 ……) |
第一個變量是待重組的數組p,后面的變量是重新生成數組的行數、列數、頁數等。 |
【例2.17】構造函數
cat、repmat、reshape
創建多維數組
首先生成構造函數使用的兩個矩陣A和B,具體如下:>> A=rand(4) %二維數組A
>> B=rand(4) %二維數組B
以下使用cat
函數生成一個新的二維數組n=2,在命令窗口中輸入:>> C=cat(2,A,B)
使用cat
函數生成一個新的三維數組n=3,在命令窗口中輸入:>> D=cat(3,A,B)
注意:使用
reshape
函數時要注意新生成的矩陣元素數量不變,否則無法生成。
###2.3.2 多維數組的標識 MATLAB中提供了許多指令可以用來判斷數組的維數和大小等操作的函數,給用戶使用數組帶來很大的方便,尤其是在使用多維數組的情況下,可以方便的查看多維數組的一些信息。如表2.5所示,列出了幾個常用的函數。 |
函數名 | 功能 |
---|---|---|
ndims (P) |
返回數組P的維數 | |
[m,n,…]=size(P) |
返回數組P各維的大小 | |
m=size(P,x) |
返回數組P某一維的大小 | |
length(P) |
返回數組P的行數或列數的最大值 | |
max(size(P)) |
返回數組P的行數或列數的最大值,與length(P)的功能相同 |
【例2.18】以三維數組A為例,查看矩陣的維數、各維大小以及所有維中最大長度。
>> A=rand(4,5,2) %生成三維均勻分布的隨機數組A
①使用ndims函數查看數組A維數,在命令窗口中輸入:>> ndims(A)
返回數組A的維數顯示如下:ans = 3
②使用size函數查看數組A中各維的大小,在命令窗口中輸入:>> size(A) %查看數組A中各維的大小
返回數組A中各維的大小顯示如下:ans = 4 5 2
③使用length函數查看數組A各維中的最大長度,在命令窗口中輸入:>> length(A)
返回數組A各維中的最大長度顯示如下:ans = 5
作者:德特數據
聯系方式:156204968@qq.com
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。