溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MATLAB編程與應(yīng)用系列-第2章 數(shù)組及矩陣的創(chuàng)建及操作(4)

發(fā)布時(shí)間:2020-06-30 16:56:49 來源:網(wǎng)絡(luò) 閱讀:563 作者:德特?cái)?shù)據(jù) 欄目:開發(fā)技術(shù)

本系列教程來源于出版設(shè)計(jì)《基于MATLAB編程基礎(chǔ)與典型應(yīng)用書籍》,如涉及版權(quán)問題,請(qǐng)聯(lián)系:156204968@qq.com。 出版社:人民郵電出版社, 頁數(shù):525。

本系列教程目前基于MATLABR2006a,可能對(duì)于更高級(jí)版本的功能和函數(shù)有差異,教程中如有問題,請(qǐng)聯(lián)系:156204968@qq.com

2.3 多維數(shù)組

###2.3.1 多維數(shù)組的創(chuàng)建
在MATLAB中創(chuàng)建和使用一維和兩維數(shù)組十分靈活,同樣MATLAB也提供了靈活多樣的創(chuàng)建多維數(shù)組的方法,使得用戶可以根據(jù)自己所創(chuàng)建多維數(shù)組的特征選取不同的創(chuàng)建方法。其中最常用的創(chuàng)建方法有:第一通過“全下標(biāo)”元素賦值方式創(chuàng)建多維數(shù)組;第二由函數(shù)ones、zeros、rand和randn直接創(chuàng)建多維數(shù)組;第三借助構(gòu)造函數(shù)創(chuàng)建多維數(shù)組。下面通過示例講解如何使用不同的方法創(chuàng)建多維數(shù)組。

(1)通過“全下標(biāo)”元素賦值方式創(chuàng)建多維數(shù)組

【例2.15】“全下標(biāo)”方式創(chuàng)建多維數(shù)組
在MATLAB命令行窗口中輸入以下命令,創(chuàng)建一個(gè)二維的四階魔方陣:
>> A=magic(4) %生成一個(gè)二維的四階魔方陣
以矩陣A為基礎(chǔ),通過直接定義數(shù)組的第三維的方式,創(chuàng)建一個(gè)三維數(shù)組。在命令窗口中輸入:
>> A(:,:,2)=rand(4) %四階的隨機(jī)陣
上述語句的執(zhí)行結(jié)果如下所示。
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)由函數(shù)ones、zeros、rand和randn直接創(chuàng)建多維數(shù)組
前面介紹到了使用函數(shù)ones、zeros、rand和randn可以直接生成二維數(shù)組,除了生成二維數(shù)組的功能外,這些函數(shù)還可以生成多維數(shù)組。

【例2.16】用函數(shù)ones、zeros、rand和randn直接創(chuàng)建三維隨機(jī)數(shù)組
&gt;&gt; A=rand(4,5,3) %創(chuàng)建三維隨機(jī)數(shù)組
&gt;&gt; B=ones(4,2,6) %創(chuàng)建三維的單位矩陣
&gt;&gt; C=zeros(4,6,8); %創(chuàng)建三維的零值矩陣

(3)借助構(gòu)造函數(shù)創(chuàng)建多維數(shù)組
多維數(shù)組的構(gòu)造函數(shù)很多,如cat、repmat、reshape等,在這里主要介紹幾個(gè)常用的構(gòu)造函數(shù)。表2.5所示為使用cat, repmat和reshape函數(shù)構(gòu)造多維數(shù)組的函數(shù)調(diào)用格式和函數(shù)描述。
函數(shù)名 調(diào)用格式 函數(shù)描述
Cat A=cat(n,A1,A2,…,Am) n=1和n=2時(shí)分別構(gòu)造[A1;A2]和[A1,A2],它們都是二維數(shù)組,而n=3時(shí)可以構(gòu)造出三維數(shù)組
repmat repmat(p,行 列 頁 ……) 第一個(gè)輸入變量p是用來放置的模塊數(shù)組,后面的變量是要放置指定的維數(shù)。
reshape reshape(p,行 列 頁 ……) 第一個(gè)變量是待重組的數(shù)組p,后面的變量是重新生成數(shù)組的行數(shù)、列數(shù)、頁數(shù)等。

【例2.17】構(gòu)造函數(shù)cat、repmat、reshape創(chuàng)建多維數(shù)組
首先生成構(gòu)造函數(shù)使用的兩個(gè)矩陣A和B,具體如下:
&gt;&gt; A=rand(4) %二維數(shù)組A
&gt;&gt; B=rand(4) %二維數(shù)組B
以下使用cat函數(shù)生成一個(gè)新的二維數(shù)組n=2,在命令窗口中輸入:
&gt;&gt; C=cat(2,A,B)
使用cat函數(shù)生成一個(gè)新的三維數(shù)組n=3,在命令窗口中輸入:
&gt;&gt; D=cat(3,A,B)

注意:使用reshape函數(shù)時(shí)要注意新生成的矩陣元素?cái)?shù)量不變,否則無法生成。

###2.3.2 多維數(shù)組的標(biāo)識(shí)
MATLAB中提供了許多指令可以用來判斷數(shù)組的維數(shù)和大小等操作的函數(shù),給用戶使用數(shù)組帶來很大的方便,尤其是在使用多維數(shù)組的情況下,可以方便的查看多維數(shù)組的一些信息。如表2.5所示,列出了幾個(gè)常用的函數(shù)。
函數(shù)名 功能
ndims (P) 返回?cái)?shù)組P的維數(shù)
[m,n,…]=size(P) 返回?cái)?shù)組P各維的大小
m=size(P,x) 返回?cái)?shù)組P某一維的大小
length(P) 返回?cái)?shù)組P的行數(shù)或列數(shù)的最大值
max(size(P)) 返回?cái)?shù)組P的行數(shù)或列數(shù)的最大值,與length(P)的功能相同

【例2.18】以三維數(shù)組A為例,查看矩陣的維數(shù)、各維大小以及所有維中最大長(zhǎng)度。
&gt;&gt; A=rand(4,5,2) %生成三維均勻分布的隨機(jī)數(shù)組A
①使用ndims函數(shù)查看數(shù)組A維數(shù),在命令窗口中輸入:
&gt;&gt; ndims(A)
返回?cái)?shù)組A的維數(shù)顯示如下:
ans = 3
②使用size函數(shù)查看數(shù)組A中各維的大小,在命令窗口中輸入:
&gt;&gt; size(A) %查看數(shù)組A中各維的大小
返回?cái)?shù)組A中各維的大小顯示如下:
ans = 4 5 2
③使用length函數(shù)查看數(shù)組A各維中的最大長(zhǎng)度,在命令窗口中輸入:
&gt;&gt; length(A)
返回?cái)?shù)組A各維中的最大長(zhǎng)度顯示如下:
ans = 5

作者:德特?cái)?shù)據(jù)
聯(lián)系方式:156204968@qq.com

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI