MATLAB资料结论

本文详细介绍了MATLAB中的数据结构,包括多维数组、细胞阵列和结构数组。通过实例探讨了如何创建和操作这些复杂的数据类型,尤其关注在实际应用中的使用场景。
摘要由CSDN通过智能技术生成

第五章 資料結構

 

5.1資料型式


在MATLAB中,其基本資料型式約有十五種,每種均可以陣列與矩陣表示。有些前面已經使用過,有些則屬使用者定義的範圍。一般的資料型式除整數,有單精度、雙精度、邏輯值、字母、細胞陣列、結構、函數握把值等等,視需要而定。數值的表示法則有整數、浮點、複數等等。對於任意數值屬於何種型式則可利用class函數進行檢驗,在指令窗中亦可利用whos函數顯示其大小與型式。

 

5.2多維陣列

 

5.2Multi-Dimensional Arrays


一般的矩陣多探討兩維。三維陣列雖僅增加一個維數,但型式就複雜許多。二維陣列以行、列表示,故在標示上,僅有兩個下標,如A(3,4)即為列3行4的表示法。若增加一維,則必須再增一個下標位置。而其所代表的意義變成另一層,而不是行列的觀念,增加之層次通常以頁數(pages)表示之。故A(3,4,1)變為第一頁,而A(3,4,2)為第二頁。其前兩標仍維持二維之行列觀念,故A(3,4,1)表示第一頁第三列第四行之元素,而A(3,4,2)表示第二頁第三列第四行之元素。

若要指出第一頁或第二頁所有的元素,則可以使用冒號代表。如A(:,:,1)、A(:,:,2)是。

>>A(:,:,1)=[1 2 3;4 5 6;7 8 9]; %第一頁輸入,結果不顯示
>>A(:,:,2)=magic(3) %第二頁輸入,並顯示整個矩陣之結果
>>A(:,:,1) =
1 2 3
4 5 6
7 8 9

>>A(:,:,2) =
8 1 6
3 5 7
4 9 2

輸入第一頁時其頁數可以省略,處理其餘頁數時則必須標明。通常要觀察一個多維矩陣之維數,可用ndims或size函數,只是兩個結果之表示法略有不同,例如:

>>ndims(A)
ans = 3

>>size(A)
ans = 3 3 2

多維矩陣之形成,亦可利用另一個函數cat(dim, C, D,…)進行增減,cat又稱為串接指令,可以將許多小矩陣依dim維度之安排進行組合。dim參數即表示所要做的矩陣維數。當dim=1時,表示產生一個[C;D]疊加的行向矩陣;dim=2時,則產生一個[C D]疊加的列向矩陣;而dim=3時,則產生一個分別由C與 D各佔一頁的三維矩陣。例如:

>>c=[1 2;3 4], d=[5 6;7 8]
c =
1 2
3 4
d =
5 6
7 8

>>cat(1,c,d)
ans =
1 2
3 4
5 6
7 8

>>cat(2,c,d)
ans =
1 2 5 6
3 4 7 8


>>cat(3,c,d)
ans(:,:,1) =
1 2
3 4

ans(:,:,2) =
5 6
7 8


在組成多頁之多維系統時,基本上其大小應一致,否則無法搭配。以下面之列為例,在第三維中,其二維之大小必須相同:

>>A=cat(3,[9 2;6 5],[7 1;2 8])

A(:,:,1) =
9 2
6 5

>>A(:,:,2) =
7 1
2 8

>>A=cat(3,[9 2 4;6 5 3],[7 1 2;2 8 4])
A(:,:,1) =
9 2 4
6 5 3

A(:,:,2) =
7 1 2
2 8 4

>>B=cat(3,[3 5;0 1; 1 4],[5 6;2 1;2 8])
B(:,:,1) =
3 5
0 1
1 4

>>B(:,:,2) =
5 6
2 1
2 8


若三維仍然不足,必須增加為四維時,則必須增加一個表示第四維之下標。在置放時,其第三維除非特別說別,均設為1,而其餘矩陣則依第四維之順序置入,亦即所輸入之資料是置於第三維之第一頁中:

>>C=cat(4,[4 2;6 5],[5 8;8 2])
C(:,:,1,1) =
4 2
6 5

C(:,:,1,2) =
5 8
8 2

>>C=cat(4,[1 2 5;4 5 7],[7 8 0;3 2 9])
C(:,:,1,1) =
1 2 5
4 5 7

>>C(:,:,1,2) =
7 8 0
3 2 9

若M與N為兩三維矩陣,今擬置於另一四維矩陣中時,其結果如下:

>>D=cat(4,A,B,cat(3,[1 2;3 4],[4 3;2 1]))
>> A=cat(3,[1 1;2 2],[3 3 ; 4 4])
A(:,:,1) =
1 1
2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值