![matlab第4章-字符串單元資料課件_第1頁(yè)](http://file4.renrendoc.com/view/7e539f343c95ed92671ba61e7f844958/7e539f343c95ed92671ba61e7f8449581.gif)
![matlab第4章-字符串單元資料課件_第2頁(yè)](http://file4.renrendoc.com/view/7e539f343c95ed92671ba61e7f844958/7e539f343c95ed92671ba61e7f8449582.gif)
![matlab第4章-字符串單元資料課件_第3頁(yè)](http://file4.renrendoc.com/view/7e539f343c95ed92671ba61e7f844958/7e539f343c95ed92671ba61e7f8449583.gif)
![matlab第4章-字符串單元資料課件_第4頁(yè)](http://file4.renrendoc.com/view/7e539f343c95ed92671ba61e7f844958/7e539f343c95ed92671ba61e7f8449584.gif)
![matlab第4章-字符串單元資料課件_第5頁(yè)](http://file4.renrendoc.com/view/7e539f343c95ed92671ba61e7f844958/7e539f343c95ed92671ba61e7f8449585.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Matlab工程應(yīng)用基礎(chǔ)
Application
ofMatlab
in
Engineering第四章
字符串單元電子信息工程教研室2023/9/192第4章字符串單元電子信息工程教研室本章學(xué)習(xí)目標(biāo)掌握字符串?dāng)?shù)組、復(fù)雜字符串?dāng)?shù)組的創(chuàng)建及串轉(zhuǎn)
換函數(shù)與串操作函數(shù)掌握元胞數(shù)組的創(chuàng)建,元胞數(shù)組的顯示、尋訪、擴(kuò)充、收縮和重組方法及元胞數(shù)組相關(guān)函數(shù)掌握構(gòu)架數(shù)組的創(chuàng)建、構(gòu)架數(shù)組的相關(guān)函數(shù)及構(gòu)
架數(shù)組的操作掌握幾種數(shù)組的轉(zhuǎn)換2023/9/193第4章字符串單元電子信息工程教研室主要內(nèi)容3.13.23.33.4字符串?dāng)?shù)組元胞數(shù)組構(gòu)
架
數(shù)
組幾種數(shù)組的轉(zhuǎn)換2023/10/2內(nèi)容簡(jiǎn)介字符串?dāng)?shù)組(Character
StringArray)字符串?dāng)?shù)組的屬性和標(biāo)識(shí)復(fù)雜字符串?dāng)?shù)組的創(chuàng)建串轉(zhuǎn)換函數(shù)和串操作函數(shù)元胞數(shù)組(Cell
Array)元胞數(shù)組的創(chuàng)建元胞數(shù)組的內(nèi)容顯示元胞數(shù)組的內(nèi)容獲取元胞數(shù)組的擴(kuò)充、收縮和重組構(gòu)架數(shù)組(Structure
Array)構(gòu)架數(shù)組的創(chuàng)建構(gòu)架數(shù)組數(shù)據(jù)的獲取和設(shè)置構(gòu)架數(shù)組域的獲取數(shù)據(jù)類型歸納幾種數(shù)組的轉(zhuǎn)換數(shù)值數(shù)組與字符串?dāng)?shù)組轉(zhuǎn)換數(shù)值數(shù)組與元胞數(shù)組的轉(zhuǎn)換元胞數(shù)組與構(gòu)架數(shù)組的轉(zhuǎn)換4第4章字符串單元電子信息工程教研室2023/10/25第4章字符串單元電子信息工程教研室3.1
字符串?dāng)?shù)組(Character
String
Array)1.字符串?dāng)?shù)組的創(chuàng)建創(chuàng)建字符串和創(chuàng)建數(shù)值是兩種不同的數(shù)據(jù)類型,所以它們的創(chuàng)建方式也是不同;數(shù)值變量時(shí)通過指令窗口中的數(shù)字賦值創(chuàng)建的字符變量是在指令窗口中,先把待建的字符放在“單引號(hào)對(duì)”中再按Enter鍵。注:?jiǎn)我?hào)必須在英文狀態(tài)下輸入基本規(guī)則所有字符串都用單引號(hào)括起來;字符串中的每一個(gè)字符都是該字符串變量中的一個(gè)元素;字符串中的字符以ASCⅡ碼形式存儲(chǔ),因而區(qū)分大小寫電子信息工程教研室2023/10/2舉例說明【例3-1】字符串入門>>String1='b';>>String2='This
is
an
example!';>>String3='例子''char
array''';>>s1=class(String1)s1
=char>>s2=size(String2)s2
=1
19>>
whosName%英文字母、空格、數(shù)字、標(biāo)點(diǎn)、中文字符%都是占一個(gè)元素位,兩個(gè)字節(jié)SizeBytes
ClassString11x12
chararrayString21x1938
chararrayString31x1428
chararrays11x48
chararrays21x216
double
arrayGrand
t6otalis
40
elements
using
92bytes第4章字符串單元2023/10/27第4章字符串單元電子信息工程教研室在MATLAB中,字符串是作為字符數(shù)組來引入的;一個(gè)字符串由多個(gè)字符組成,用單引號(hào)('')來界定;字符串是按行向量進(jìn)行存儲(chǔ)的,每一字符(包括空格)是以其ASCII碼的形式存放。2023/10/28第4章字符串單元電子信息工程教研室3.1.1
字符串?dāng)?shù)組的屬性和標(biāo)識(shí)1.
創(chuàng)建串?dāng)?shù)組必須將待建字符放在“單引號(hào)對(duì)”中,當(dāng)串中本身包含單引號(hào)時(shí),每個(gè)單引號(hào)符用“連續(xù)的兩個(gè)單引號(hào)”表示。2.
串?dāng)?shù)組的大小size指令可獲得串?dāng)?shù)組的大小。串中的每一個(gè)字符,包括中英文字符、空格、標(biāo)點(diǎn)都算一個(gè)元素。3.
串?dāng)?shù)組的元素標(biāo)識(shí)按從左至右的順序依次用1、2、3、4…等標(biāo)識(shí)元素在串中的位置。2023/10/29第4章字符串單元電子信息工程教研室4.串?dāng)?shù)組的ASCII碼指令abs和double可以顯示串?dāng)?shù)組對(duì)應(yīng)的ASCII碼數(shù)值數(shù)組,指令char則可把ASCII碼數(shù)值數(shù)組轉(zhuǎn)換成串?dāng)?shù)組。5.字符串ASCII碼數(shù)組的操作可以對(duì)ASCII碼數(shù)組進(jìn)行數(shù)值數(shù)組的各種運(yùn)算。但其結(jié)果就變成一般數(shù)值向量的運(yùn)算,而不再是字符串的運(yùn)算。注意:必須在英文狀態(tài)下輸入“單引號(hào)對(duì)”。將多個(gè)字符串變量直接用“,”連接,可構(gòu)成一個(gè)較長(zhǎng)的新字符串變量。2023/10/210第4章字符串單元電子信息工程教研室【例3-2】串?dāng)?shù)組基本操作>>
string='this
is
an
example!'string
=this
is
anexample!>>
s_1=string(end:-1:1)s_1
=!elpmaxe
na
sisiht>>
s_2=string(end:-2:1)%輸入字符串string%倒序排列string得到s_1%倒序排列string且每隔一個(gè)字符取一個(gè)元素得到s_2s_2
=!lmx
as
it>>w=string>=‘a(chǎn)’&string<=‘z’%找出所有小寫英文字符,用邏輯數(shù)組表示2023/10/211第4章字符串單元電子信息工程教研室w
=Columns
1
through121
1
1
1
0
1
1
0
1
1
0
1Columns
13
through191
1
1
1
1
1
0>>STRING=string;%定義新串STRING,其內(nèi)容與string相同>>
STRING(w)=char(string(w)-32)%將小寫字符轉(zhuǎn)換成大寫字符(ASCII
碼相差32)STRING
=THIS
IS
ANEXAMPLE!>>Str=['Exm03_2.m',string(5:end)]Str
=Exm03_2.m
is
an
example!%構(gòu)造新的字符串Str2023/10/212第4章字符串單元電子信息工程教研室3.1.2
復(fù)雜字符串?dāng)?shù)組的創(chuàng)建1.多行串?dāng)?shù)組的直接創(chuàng)建可以直接創(chuàng)建多行字符串?dāng)?shù)組必須保證各行等長(zhǎng),可以利用增減“空格”來實(shí)現(xiàn)。%6個(gè)字符%17個(gè)字符>>
s=['Hello,
''Nice
to
meet
you!
']???
Error
using
==>
vertcatAll
rows
in
the
bracketed
expression
must
have
thesamenumber
of
columns.>>
s=['Hello,','
'*ones(1,11)'Nice
to
meet
you!']s
=Hello,Nice
to
meet
you!>>size(s)ans
=%補(bǔ)充11個(gè)空格2
172023/10/213第4章字符串單元電子信息工程教研室2.利用串操作函數(shù)創(chuàng)建多行串?dāng)?shù)組利用專門的str2mat、strvcat和char函數(shù)可以構(gòu)造出字符串?dāng)?shù)組,而不必考慮每行的字符數(shù)是否相等,總是按最長(zhǎng)的設(shè)置,不足的末尾用空格補(bǔ)齊。2023/10/2>>
s=char('Hello,',
'Nice
to
meet
you!');>>
s=str2mat('Hello,',
'Nice
to
meet
you!');>>
s=strvcat('Hello,',
'Nice
to
meet
you!');>>
s1=str2mat('Hello,',''
,'Nice
to
meet
you!');>>
s2=strvcat('Hello,',
'','Nice
to
meet
you!');>>s1,s2>>s_s=size(s),s_s1=size(s1),s_s2=size(s2)s_s
=2
17s_s1
=3
17s_s2
=2
17s
=Hello,Nice
to
meet
you!s1
=Hello,14第4章字符串單元電子信息工程教研室s2
=Hello,Nice
to
meet
you!Nice
to
meet
you!區(qū)別:str2mat認(rèn)為空串代表空行;
strvcat省略空串。2023/10/215第4章字符串單元電子信息工程教研室3.利用串轉(zhuǎn)換函數(shù)產(chǎn)生數(shù)碼字符串常用的數(shù)組/字符串轉(zhuǎn)換函數(shù)有int2str,num2str,
mat2str
。int2str:把整數(shù)數(shù)組轉(zhuǎn)換成字符串?dāng)?shù)組,非整數(shù)將被四舍五入后再轉(zhuǎn)換;num2str
:把非整數(shù)數(shù)組轉(zhuǎn)換成字符串?dāng)?shù)組,常用于圖形中數(shù)據(jù)點(diǎn)的標(biāo)識(shí);mat2str:把數(shù)值數(shù)組轉(zhuǎn)換成字符串?dāng)?shù)組。2023/10/216第4章字符串單元電子信息工程教研室>>
a=[0.9576
0.8
2.151;4.0
5
7.8];>>
a1=int2str(a)
;>>a2=num2str(a,2);>>a3=mat2str(a,2);>>a,a1,a2,a3a
=%2×3數(shù)值數(shù)組%取整數(shù)%保持2位有效數(shù)字,轉(zhuǎn)換為串%保持2位有效數(shù)字,轉(zhuǎn)換為一行串0.9576
0.8000
2.15104.0000
5.0000
7.8000a1
=1
1
24
5
8a2
=0.96
0.8
2.24
5
7.8a3
=[0.96
0.8
2.2;4
5
7.8]2023/10/217第4章字符串單元電子信息工程教研室cleart
=
0
:
0.01
:
10;y
=
exp(-2*t
)
.*
sin(
3*t
);
[
y_max,
i_max
]
=
max(
y
);t_text
=
[
't
=
',
num2str(
t(i_max)
)
];y_text
=
[
'y
=
',
num2str(
y_max
)
];max_text
=
char(
'Maxium',
t_text,
y_text);Title
=
[
'y
=
exp(-2*t
)
.*
sin(
3*t
)'
];Figureplot(
t,zeros(
size(t)
),
'k'
)hold
onplot(
t,
y,
'b'
)plot(
t(i_max),
y_max,
'r.',
'MarkerSize',20
)text(
t(i_max)+0.3,
y_max+0.05,max_text
)title(
Title);xlabel(
't'
)ylabel(
'y'
)hold
off%清除內(nèi)存變量%時(shí)間t
從0到10
每隔0.01均勻采樣%對(duì)應(yīng)每一個(gè)t求y值%求最大值y_max
及其下標(biāo)i_max%生成最大值點(diǎn)的橫坐標(biāo)字符串%生成最大值點(diǎn)的縱坐標(biāo)字符串%三行字符來標(biāo)識(shí)最大值點(diǎn)%圖名稱字符串%新建一個(gè)圖形窗%畫一條黑色的水平線%保持圖形不被清除%藍(lán)色實(shí)線畫曲線y(t)%大小為20
的紅色圓點(diǎn)標(biāo)記最大值點(diǎn)%在最大值點(diǎn)附近顯示注釋字符%顯示圖名%顯示橫坐標(biāo)名%顯示縱坐標(biāo)名%取消圖形保持【例3-3】作出函數(shù)y=e-2tsin(3t)的圖形,并標(biāo)注最大值點(diǎn)2023/10/218第4章字符串單元電子信息工程教研室2023/10/219第4章字符串單元電子信息工程教研室3.1.3
串轉(zhuǎn)換函數(shù)和串操作函數(shù)指
令含
義指
令含
義abs把串譯成ASCII碼base2decbase,bin,hex與dec之間的轉(zhuǎn)換。
base:任意進(jìn)制串
bin:二進(jìn)制串hex:十六進(jìn)制串
dec:十進(jìn)制整數(shù)char任意類型轉(zhuǎn)換成串bin2decdouble任意類型轉(zhuǎn)換成雙精度數(shù)值hex2decfprintf格式化數(shù)據(jù)寫到文件或屏幕dec2basesprintf以控制格式把數(shù)值轉(zhuǎn)換為串dec2binsscanf在格式控制下把串轉(zhuǎn)換成數(shù)值dec2hexsetstr把ASCII碼譯成串int2str整數(shù)轉(zhuǎn)換成串str2num串轉(zhuǎn)換成數(shù)值mat2str數(shù)值矩陣轉(zhuǎn)換成串hex2num十六進(jìn)制串轉(zhuǎn)換成浮點(diǎn)數(shù)num2str數(shù)值轉(zhuǎn)換成串1.
字符串轉(zhuǎn)換函數(shù)2023/10/220第4章字符串單元電子信息工程教研室2.
字符串操作函數(shù)length:用來計(jì)算字符串的長(zhǎng)度(即組成字符的個(gè)數(shù))。char(s1,s2,…):將串s1,s2,…逐個(gè)寫成行,形成多行數(shù)組。
class
或ischar
:用來判斷某一個(gè)變量是否為字符串。class
函數(shù)返回char則表示為字符串,而ischar函數(shù)返回1表示為字符串。
strcmp(s1,s2):比較字符串s1
和s2
是否相同。返回值如果為1
則相同,為0則不同。
findstr(s1,s2):尋找在某個(gè)長(zhǎng)字符串s1
中的子字符串s2
,返回其起始位置。deblank(s):
刪除字符串尾部的空格。2023/10/221第4章字符串單元電子信息工程教研室%重復(fù)單引號(hào)來輸入含有單引號(hào)的字符串%字符串str2的長(zhǎng)度%查看字符串str1的ASCII碼>>str1='Hello'
;>>
str2=['I
like
''MATLAB''']str2
=I
like'MATLAB'>>length(str2)ans
=15>>x1=double(str1)x1
=72
101
108
108
111>>
x2=str1+1%字符串的數(shù)值運(yùn)算x2
=73
102
109109112>>
char(x1)%將ASCII碼轉(zhuǎn)換成字符串形式ans
=Hello>>
char(x2)ans
=Ifmmp2023/10/222第4章字符串單元電子信息工程教研室>>char(str1,str2)ans
=HelloI
like'MATLAB'%形成兩行字符>>strcat(str1,'!',str2,'.')%形成一長(zhǎng)串a(chǎn)ns
=Hello!I
like
'MATLAB'.>>strcmp(str1,str2)%比較兩串是否相同ans
=0>>findstr(str2,'like')%尋找子串‘like’的起始字符在主串中的下標(biāo)ans
=3>>isletter(str2)%以邏輯1指示串中英文字母的位置ans
=Columns
1
through121
0
1
1
1
1
0
0
1
1
1
1
Columns
13
through151
1
0>>
class(str1)
,class(x1),ans
=charans
=double%判斷變量類型2023/10/2執(zhí)行字符串如果需要直接“執(zhí)行”某一字符串,可以使用eval命令,效果就如同直接在MATLAB命令窗口內(nèi)輸入此命令。>>str3='a=2*5'str3
=a=2*5>>eval(str3)a
=10%執(zhí)行字符串顯示字符串字符串可以直接使用disp
命令顯示出來,即使后面加分號(hào)(;)也顯示。>>
disp('請(qǐng)輸入2*2的矩陣a')請(qǐng)輸入2*2的矩陣a>>str1='Hello'''MATLAB''']str1
=Hellostr2
=,
str2=['I
likeI
like'MATLAB'>>disp(char(str1,str2));HelloI
like'MATLAB'23第4章字符串單元電子信息工程教研室2023/10/224第4章字符串單元電子信息工程教研室3.2元胞數(shù)組(CellArray)特點(diǎn):元胞數(shù)組的基本組成單元是元胞(cell),元胞在數(shù)組中以下標(biāo)來進(jìn)行區(qū)分;元胞可以是任何類型、任意大小的數(shù)組(如:數(shù)值數(shù)組、字符串?dāng)?shù)組、符號(hào)對(duì)象等);一個(gè)元胞數(shù)組中各個(gè)元胞可以是不同類型的內(nèi)容;元胞數(shù)組的維數(shù)不受限制,可以采用單下標(biāo)或全下標(biāo)尋址;元胞和元胞里的內(nèi)容是兩個(gè)不同范疇的東西,分別通過“元胞外標(biāo)識(shí)(Indexing)”和”元胞內(nèi)編址(Content
Addressing)”來尋訪?!巴鈽?biāo)識(shí)的元元素”用圓括號(hào)對(duì)(),而“編址元胞元素內(nèi)涵”用花括號(hào)對(duì){},如A(2,3)表示元胞數(shù)組A第2行第3列的元胞,A{2,3}則表示元胞數(shù)組A第2行第3列的元胞中的內(nèi)容。2023/10/225第4章字符串單元電子信息工程教研室3.2.1
元胞數(shù)組的創(chuàng)建1.直接使用花括號(hào){}創(chuàng)建>>clear>>A={'This
is
the
first
Cell.',[1
2;3
4];eye(3),{'Tom','Jane'}}A
=[2x2
double]{1x2cell
}[1x23
char
][3x3
double]>>
whosName
SizeA
2x2Bytes
Class524 cell
arrayGrand
total
is
49
elements
using
524
bytes創(chuàng)建的元胞數(shù)組中的元胞A(1,1)是字符串,A(1,2)是數(shù)組,A(2,1)是數(shù)組,而A(2,2)為一個(gè)元胞數(shù)組。2023/10/226第4章字符串單元電子信息工程教研室2.
由各元胞創(chuàng)建-外標(biāo)識(shí)元胞元素賦值法>>B(1,1)={'Thisisthe
secondCell.'};B(1,2)={5+3*i};B(1,3)={[12;34;
56]};>>
BB
=%顯示元胞數(shù)組[1x24
char][5.0000+
3.0000i][3x2
double]3.由各元胞內(nèi)容創(chuàng)建-編址元胞元素內(nèi)涵的直接賦值法>>C{1,1}='This
is
the
third
Cell.';C{2,1}=magic(4)%生成2×1的元胞數(shù)組C
='This
is
the
third
Cell.'[4x4
double]2023/10/23.2.2
元胞數(shù)組的內(nèi)容顯示A{1,1}
=This
is
the
first
Cell.A{2,1}
=100010001A{1,2}
=1
23
4A{2,2}{1}
=TomA{2,2}{2}
=JaneC{2}
=16
2
3
135
11
10
89
7
6
124
14
15
1
在MATALB命令窗口中輸入元胞數(shù)組的名稱,并不直接顯示出元胞數(shù)組的各元胞元素的內(nèi)容值,而是顯示各元胞元素的數(shù)據(jù)類型和結(jié)構(gòu),單元素的元胞除外。1.使用celldisp命令顯示元胞數(shù)組的內(nèi)容>>
celldisp(A),
celldisp(C){}表示元胞數(shù)組的元胞元素內(nèi)27第4章字符串單元電子信息工程教研室容,A{2,2}{C1{}1表}=示第2行第2列的元胞元素T中hi存s
is放th的e
t元hir胞d
C數(shù)ell組.的第1個(gè)元胞元素的內(nèi)容2023/10/22.使用cellplot命令以圖形顯示元胞數(shù)組的內(nèi)容>>cellplot(A)28第4章字符串單元電子信息工程教研室2023/10/229第4章字符串單元電子信息工程教研室3.2.3
元胞數(shù)組的內(nèi)容獲取1.取元胞數(shù)組的元素內(nèi)容>>x1=A{1,2} %用花括號(hào)尋訪取A(1,2)元胞元素的內(nèi)容x1
=1
23
4>>x2=A{1,2}(2,2)x2
=4%取A(1,2)元胞元素的數(shù)組第二行第二列內(nèi)容注意:x1是數(shù)組,x2是標(biāo)量。2.取元胞數(shù)組的元素>>x3=A(1,2)x3
=[2x2
double]%用圓括號(hào)尋訪得到的是元胞2023/10/230第4章字符串單元電子信息工程教研室3.使用deal函數(shù)取多個(gè)元胞元素的內(nèi)容>>[x4,x5,x6]=deal(A{[2,3,4]})x4
=%單下標(biāo)尋址取A的三個(gè)元胞內(nèi)容100010001x5
=1234x6
='Tom''Jane'2023/10/231第4章字符串單元電子信息工程教研室【例3-4】元胞數(shù)組的基本應(yīng)用>>C=char('這是','元胞數(shù)組');>>R
=
reshape(
1:9,3,3
);>>S
=
sym(
'sin(-3*t)*exp(-t)'
);>>A(
1,1
)=
{
C};>>A{
2,1
}
=
S;%兩行的字符串?dāng)?shù)組%3×3
的數(shù)值數(shù)組%符號(hào)表達(dá)式%對(duì)元胞數(shù)組A
進(jìn)行賦值%注意{}和()的區(qū)別當(dāng)用圓括號(hào)來尋址時(shí),所表示的是元胞,相應(yīng)地等號(hào)右邊也應(yīng)該是一個(gè)元胞;當(dāng)用花括號(hào)來尋址時(shí),所表示的是元胞中的內(nèi)容,可以是任意類型、大小的數(shù)組。教研室2023/10/2
%顯示元胞數(shù)組>>A{
2,2
}
=
R;>>AA
=[2x4
char]
[][1x1
sym
] [3x3
double]A的元胞的元胞中的內(nèi)容電子信息工程>>
celldisp(
A
)A{1,1}
=這是元胞數(shù)組A{2,1}
=sin(-3*t)*exp(-t)A{1,2}
=[]A{2,2}
=考慮A{2,2}={R}的情況:>>
A{
2,2
}
=
{R}A
=[2x4char][1x1
sym
][]{1x1
cell}%顯示元胞數(shù)組A
>>celldisp(A)A{1,1}
=這是元胞數(shù)組A{2,1}
=sin(-3*t)*exp(-t)A{1,2}
=[]A{2,2}{1}
=1
4
72
5
83
6
9A{
2,2}
{1}(1,3)=71
4
72
5
83
6
932第4章字符串單元2023/10/233第4章字符串單元電子信息工程教研室%元胞的類型%元胞的內(nèi)容的類型>>
class(
A(2,1)
)ans
=cell>>
class(
A{2,1}
)ans
=sym>>
A(
2,1
)ans
=[1x1sym]>>
A{
2,1
}ans
=sin(-3*t)*exp(-t)>>
save
exm03_04.mat%A的第2行第1列的元胞%A
的第2行第1列的元胞中的內(nèi)容%保存內(nèi)存變量2023/10/23.2.4
元胞數(shù)組的擴(kuò)充、收縮和重組%載入數(shù)據(jù)文件%創(chuàng)建空的2×2
元胞數(shù)組[1.0000+
2.0000i]%將A,B
作為兩列排列得到2×4
的元胞數(shù)組'Another
cellarray'[3x7
char]【例3-5】元胞數(shù)組的擴(kuò)充、收縮和重組>>clear>>load
exm03_04>>B
=
cell(
2
);>>B{1,1}='Another
cellarray'; %對(duì)元胞數(shù)組進(jìn)行賦值>>B(:,2)={num2str(R);1+2i}%對(duì)第二列元胞賦值,注意前后大小一致B
='Another
cellarray' [3x7
char][]%元胞數(shù)組的重組>>
AB
=
[
A
B
]AB
=[2x4
char][1x1
sym
][][3x3
double][][1.0000+
2.0000i]34第4章字符串單元電子信息工程教研室2023/10/2%將A,B
作為兩行排>>
A_B
=
[
A
;
B
]A_B
=[2x4
char][1x1
sym
][][3x3
double][3x7
char
]
'Another
cell
array'[][1.0000+
2.0000i]>>cellplot(A_B,'legend') %元胞數(shù)列得到4*2
的元胞數(shù)組組的形象結(jié)構(gòu)圖%刪除元胞數(shù)組的第3
行[][1x1
sym
] [3x3
double][] [1.0000+
2.0000i]%元胞數(shù)組的收縮>>
A_B(
3,:
)
=
[]A_B
=[2x4
char]
>>
RA_B
=
reshape(
A_B,
2,3
)RA_B
=
%重新排列元胞數(shù)組的內(nèi)容,得到2×3
的元胞數(shù)組[2x4
char][1x1
sym
][] [3x3
double][] [1.0000+
2.0000i]35第4章字符串單元電子信息工程教研室2023/10/2%元胞數(shù)組內(nèi)容的獲取>>A_B(2,2)%取出A_B中的一個(gè)元胞ans
=[3x3
double]>>A_B{2,2}%取出該元胞的所有內(nèi)容
ans=1
4
72
5
83
6
9>>
A_B{
2,2
}
(
2,:
)%取出該元胞中第2行的所有元素ans
=2
5
8>>[a1,a2]=deal(A_B{[1,2]})%一次取出多個(gè)元胞,并逐個(gè)分配a1
=這是元胞數(shù)組a2
=sin(-3*t)*exp(-t)>>a3=A_B{2,2}(:,[1,3])%取出第2行第2列元胞內(nèi)容中的第1,3列a3
=1
72
83
9注意:花括號(hào)、圓括號(hào)和中括號(hào)在尋址時(shí)的不同含義36第4章字符串單元電子信息工程教研室2023/10/237第4章字符串單元電子信息工程教研室3.3
構(gòu)架數(shù)組(Structure
Array)特點(diǎn):構(gòu)架數(shù)組的基本組成是構(gòu)架(Structure),以下標(biāo)區(qū)分各個(gè)構(gòu)架;構(gòu)架必須劃分成“域”后才能使用,每一個(gè)構(gòu)架都包含多個(gè)域(Fields);構(gòu)架不能直接存放數(shù)據(jù),數(shù)據(jù)必須存放在構(gòu)架下面的“域”中;構(gòu)架的域可以存放任意類型、任意大小的數(shù)組(數(shù)值數(shù)組、字符串?dāng)?shù)組、符號(hào)對(duì)象、元胞等);不同構(gòu)架的同名域中可以存放不同類型的內(nèi)容;構(gòu)架數(shù)組可以是任意維的,可以利用單下標(biāo)或全下標(biāo)尋址。2023/10/23.3.1
構(gòu)架數(shù)組的創(chuàng)建1.直接創(chuàng)建法-直接對(duì)域賦值>>ps(1).name='曲線1';%構(gòu)架的域由(構(gòu)架名).(域名)標(biāo)識(shí)>>ps(1).color='red'
;>>ps(1).position=[0,0,300,300]
;>>ps(2).name='曲線2';>>ps(2).color='blue';>>ps(2).position=[100,100,300,300]
;
ps是構(gòu)架數(shù)組,ps(1)和ps(2)是構(gòu)架,
name、color和position是域。>>ps
%ps為1×2的構(gòu)架數(shù)組,有三個(gè)域ps
=1x2
struct
array
with
fields:namecolorposition%顯示構(gòu)架>>ps(1)ans
=name:'曲線1'color:'red'position:
[0
0
300
300]38第4章字符串單元電子信息工程教研室2023/10/239第4章字符串單元電子信息工程教研室2.利用struct函數(shù)創(chuàng)建>>ps(1)=struct(‘name’,‘曲線1','color','red','position',[0,0,300,300]);>>ps(2)=struct(‘name’,‘曲線2','color','blue','position',[100,100,300,300])ps
=1x2
struct
array
with
fields:namecolorposition2023/10/240第4章字符串單元電子信息工程教研室3.3.2
構(gòu)架數(shù)組數(shù)據(jù)的獲取和設(shè)置1.
直接獲?。カ@取一個(gè)構(gòu)架%獲取構(gòu)架ps(1)position域中第1行第3列的元素內(nèi)容>>x1=ps(1)x1
=name:'曲線1'color:
'red'position:
[0
0
300
300]>>x2=ps(1).positi
%獲取構(gòu)架ps(1)中一個(gè)域position的全部?jī)?nèi)容x2
=0
0
300
300>>
x3=
ps(1)
.position(1,3)x3
=3002023/10/241第4章字符串單元電子信息工程教研室2.用getfield獲取構(gòu)架數(shù)組的數(shù)據(jù)>>x4=getfield(ps,{1},'color')%獲取構(gòu)架ps(1)中一個(gè)域color的全部?jī)?nèi)容x4
=red>>
x5=getfield(ps,{1},
'color',{1})x5
=r%獲取構(gòu)架ps(1)color域中第一個(gè)元素的內(nèi)容3.用setfield設(shè)置構(gòu)架數(shù)組的數(shù)據(jù)>>ps=setfield(ps,{1},'color','green');%對(duì)ps(1)中color域的內(nèi)容進(jìn)行設(shè)置ps(1)ans
=name:'曲線1'color:
'green'position:
[0
0
300
300]2023/10/242第4章字符串單元電子信息工程教研室1.使用fieldnames獲取構(gòu)架數(shù)組的所有域>>x6=fieldnames(ps)x6
='name''color''position'2.獲取構(gòu)架數(shù)組域的數(shù)據(jù)使用“[]”合并相同域的數(shù)據(jù)并排成水平向量>>all_x=[]all_x
=曲線1曲線2使用cat將其變成多維數(shù)組>>cat(1,ps.position)%沿第一維排列
ans=0
0
300
300100
100
300
300>>cat(2,ps.position) %沿第二維排列
ans=0
0
300
300
100
100300
3003.3.3
構(gòu)架數(shù)組域的獲取2023/10/243第4章字符串單元電子信息工程教研室【例3-6】已知2輸入2輸出的LTI系統(tǒng)的傳遞函數(shù),利用表示該傳遞函數(shù)的構(gòu)架數(shù)組來練習(xí)構(gòu)架數(shù)組的基本操作。>>%1.
創(chuàng)建代表2輸入2輸出系統(tǒng)的傳遞函數(shù)的構(gòu)架數(shù)組>>clear>>num={3,2;[4
1],1}; %分子系數(shù)構(gòu)成的元胞數(shù)組>>den={[1,3,2],[1,1,1];[1
2
2
1],[1
0]}; %分母系數(shù)構(gòu)成的元胞數(shù)組%利用控制工具箱函數(shù)產(chǎn)生傳遞函數(shù)矩陣%將傳遞函數(shù)矩陣轉(zhuǎn)換成構(gòu)架數(shù)組>>ss
=
tf(
num
,
den
);>>SST
=
struct(
ss
)SST
=num:
{2x2cell}den:
{2x2cell}Variable:
's'lti:
[1x1lti]2023/10/2>>%2.
獲取構(gòu)架數(shù)組的域名>>FN
=
fieldnames(
SST
)%獲取域名,以元胞數(shù)組的形式保存FN
='num''den''Variable''lti'>>
class(
FN
)ans
=Cell>>%3.
獲取構(gòu)架數(shù)組域中的內(nèi)容[1x3
double][1x4
double][1x3
double][1x2
double]>>ff=SST.den
%獲取SST的den域中的所有內(nèi)容,為2×2的元胞數(shù)組ff
=
>>ff{2,1}%獲取ff中第2行第1列中內(nèi)容,相當(dāng)于SST.den{2,1}ans
=1
2
2
1>>poly2str(ff{2,1},'s')%以易讀形式顯示多項(xiàng)式ans
=s^3
+
2
s^2
+
2
s
+
144第4章字符串單元電子信息工程教研室2023/10/245第4章字符串單元電子信息工程教研室>>%4.
賦值操作>>SST.num{
2,1
}ans
=0
0
4
1>>SST.num{
2,1
}
=
[
1
3
1
];行第1列的元胞內(nèi)容進(jìn)行修改>>
SST.num{
2,1
}ans
=1
3
1%對(duì)SST
的num
域中第2電子信息工程教研室2023/10/2>>%5.
構(gòu)架數(shù)組的擴(kuò)充>>size(SST) %SST為單構(gòu)架數(shù)組ans
=1
1>>
SST(
2,2
)
=
struct(
tf(1,[1%將SST
擴(kuò)充為2×2的1])
)構(gòu)架數(shù)組SST
=2x2
struct
array
with
fields:numdenVariablelti>>size(SST)ans
=
246
2%將SST
構(gòu)>>%6.
構(gòu)架數(shù)組的收縮>>SST(
1,:
)
=
[]架數(shù)組的第1行刪除SST
=1x2
struct
array
with
fields:numdenVariablelti>>size(SST)ans
=1
2第4章字符串單元電子信息工程教研室2023/10/2num:
{2x2
cell}den:
{2x2
cell}Variable:
's'lti:
[1x1
lti](1,1)num:
{2x2
cell}den:
{2x2
cell}Variable:
's'lti:
[1x1
lti](1,2)num:
[]den:
[]Variable:
[]lti:
[](2,1)num:
[]den:
[]Variable:
[]lti:
[](2,2)num:
{[0
1]}den:
{[1
1}Variable:
's'lti:
[1x1
lti]擴(kuò)充(1,1)num:
[]den:
[]Variable:
[]lti:
[](1,2)num:
{[0
1]}den:
{[1
1}Variable:
's'lti:
[1x1
lti]收縮構(gòu)架數(shù)組擴(kuò)充、收縮示意圖47第4章字符串單元電子信息工程教研室2023/10/2%取出SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的num
域%取出SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的den
域%利用系統(tǒng)函數(shù)打印函數(shù)顯示SST
的第1行第%取出SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的num
域的內(nèi)%取出SST構(gòu)架數(shù)組第1行第2列的構(gòu)架的den
域的內(nèi)容>>%7.構(gòu)架數(shù)組內(nèi)容的調(diào)取>>Snum=SST(1,2).numSnum
=[1x2
double]>>Sden=SST(1,2).denSden
=[1x2
double]>>printsys
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓市荒山土地承包合同范本
- 動(dòng)漫作品授權(quán)合作合同范本
- 企業(yè)用人正式合同范例
- 淺析京劇發(fā)聲與民歌唱法美聲唱法的關(guān)系
- 加盟押金店合同范例
- 2025年度市政道路施工建設(shè)投資合作協(xié)議
- MW光伏電站項(xiàng)目EC總承包合同范本
- 三方合租協(xié)議合同范本
- 制砂機(jī)租賃合同范本
- 保險(xiǎn)內(nèi)勤銷售合同范例
- 餐飲服務(wù)與管理(高職)PPT完整全套教學(xué)課件
- 成人學(xué)士學(xué)位英語(yǔ)1000個(gè)高頻必考詞匯匯總
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)模擬試題及答案解析
- 常見食物的嘌呤含量表匯總
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)同步練習(xí)(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ))試題庫(kù)含答案解析
- 濕型砂中煤粉作用及檢測(cè)全解析
- 積累運(yùn)用表示動(dòng)作的詞語(yǔ)課件
- 機(jī)動(dòng)車登記證書英文證書模板
- 第8課《山山水水》教學(xué)設(shè)計(jì)(新人教版小學(xué)美術(shù)六年級(jí)上冊(cè))
評(píng)論
0/150
提交評(píng)論