《MATLAB教程及實訓(xùn) 第4版》課件 第2章MATLAB基本運算實訓(xùn)_第1頁
《MATLAB教程及實訓(xùn) 第4版》課件 第2章MATLAB基本運算實訓(xùn)_第2頁
《MATLAB教程及實訓(xùn) 第4版》課件 第2章MATLAB基本運算實訓(xùn)_第3頁
《MATLAB教程及實訓(xùn) 第4版》課件 第2章MATLAB基本運算實訓(xùn)_第4頁
《MATLAB教程及實訓(xùn) 第4版》課件 第2章MATLAB基本運算實訓(xùn)_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第2章MATLAB基本運算2.1數(shù)據(jù)類型2.2矩陣和數(shù)組的算術(shù)運算2.3字符串2.4日期和時間2.5元胞數(shù)組、結(jié)構(gòu)體和映射2.6表格型、時間表和分類型2.7關(guān)系運算和邏輯運算2.8數(shù)組的信息獲取2.9多項式2.10擬合與插值本章小結(jié)和練習(xí)2.1數(shù)據(jù)類型MATLABR2021a定義了多種基本的數(shù)據(jù)類型,包括數(shù)值型、字符型、日期型、元胞數(shù)組、結(jié)構(gòu)體型、表、時間表、時序和映射容器等。2.1.1常數(shù)和變量1.常數(shù)2.變量MATLAB的變量命名規(guī)則如下:變量名區(qū)分字母的大小寫。例如,“a”和“A”是不同的變量。變量名不能超過63個字符,第63個字符后的字符被忽略。變量名必須以字母開頭,變量名的組成可以是任意字母、數(shù)字或者下劃線,但不能含有空格和標(biāo)點符號(如,。%等)。關(guān)鍵字(如if、while等)不能作為變量名。練習(xí):下列______是合法常量。

A.3*e10 B.1e500 C.-1.85e-56 D.10-2答案:C特殊變量特殊變量名取值特殊變量名取值ans運算結(jié)果的默認變量名flintmax浮點格式的最大連續(xù)數(shù)2^53pi圓周率πintmax特定整數(shù)類型的最大值eps浮點數(shù)的相對誤差intmin指定整數(shù)類型的最小值Inf無窮大,如1/0realmin最小的可用正實數(shù)2.2251×10-308NaN或nan不定值,如0/0、∞/∞、0×∞r(nóng)ealmax最大的可用正實數(shù)1.797710308i或ji=j=,虛數(shù)單位

練習(xí):

a=5+3ib=2+4jc=2*pid=2/02*d1/d2.1.2整數(shù)和浮點數(shù)數(shù)值數(shù)據(jù)數(shù)據(jù)類型表示范圍字節(jié)數(shù)類型轉(zhuǎn)換函數(shù)無符號8位整數(shù)uint80~28-11uint8()無符號16位整數(shù)uint160~216-12uint16()無符號32位整數(shù)uint320~232-14uint32()無符號64位整數(shù)uint640~264-18uint64()有符號8位整數(shù)int82-7~27-11int8()有符號16位整數(shù)int162-15~215-12int16()有符號32位整數(shù)int322-31~231-14int32()有符號64位整數(shù)int642-63~263-18int64()單精度型single-3.40282×1038

~+3.40282×1034single()雙精度型double-1.79769×10308

~+1.79769×103088double()練習(xí):x=uint8(2.3e10),則x所占的字節(jié)是______個。

A.1 B.2 C.4 D.8答案:A2.浮點數(shù)使用intmax、intmin、fintmax、fintmin、realmax和realmin函數(shù)得出不同類型數(shù)據(jù)的范圍?!纠?-2】使用類型轉(zhuǎn)換函數(shù)轉(zhuǎn)換不同的數(shù)據(jù)類型。>>x=int8(2.3)>>y=int8(2.3e16)>>z=int16(2.3)>>x1=1/3>>xx=x*x1>>y1=single(y) >>ymax=realmax2.1.3復(fù)數(shù)MATLAB用特殊變量“i”或“j”表示虛數(shù)的單位。復(fù)數(shù)的產(chǎn)生可以有幾種方式:

z=a+b*i或z=a+b*j z=a+bi或z=a+bj(當(dāng)b為常數(shù)時)

z=r*exp(i*theta) z=complex(a,b)2.2矩陣和數(shù)組的算術(shù)運算空數(shù)組(emptyarray):沒有元素的數(shù)組;標(biāo)量(scalar):是指1×1的矩陣,即為只含一個數(shù)的矩陣;向量(vector):是指1×n或n×1的矩陣,即只有一行或者一列的矩陣;矩陣(matrix):是一個矩形的m×n數(shù)組,即二維數(shù)組;數(shù)組(array):是指多維數(shù)組m×n×k×…,其中矩陣和向量都是數(shù)組的特例。2.2.1數(shù)組的創(chuàng)建在MATLAB中矩陣的創(chuàng)建應(yīng)遵循以下基本常規(guī):矩陣元素應(yīng)用方括號([])括住;每行內(nèi)的元素間用逗號(,)或空格隔開;行與行之間用分號(;)或回車鍵隔開;元素可以是數(shù)值或表達式。1.空數(shù)組2.向量向量包括行向量(rowvector)和列向量(columnvector),即1×n或n×1的矩陣。(1)使用from:step:to方式生成向量如果是等差的行向量,可以使用“from:step:to”方式生成:

from:step:to說明:from、step和to分別表示開始值、步長和結(jié)束值;當(dāng)step省略時則默認為step=1;當(dāng)step省略或step>0而from>to時為空矩陣,當(dāng)step<0而from<to時也為空矩陣。(2)使用linspace和logspace函數(shù)生成向量

linspace(a,b,n) %生成線性等分向量

logspace(a,b,n) %生成對數(shù)等分向量說明:a、b、n三個參數(shù)分別表示開始值、結(jié)束值和元素個數(shù);linspace函數(shù)生成從a到b之間線性分布的n個元素的行向量,n如果省略則默認值為100;logspace函數(shù)生成從10a到10b之間按對數(shù)等分的n個元素的行向量,n如果省略則默認值為50。練習(xí)例2-5練習(xí):已知x=0:10,則x有______個元素。

A.10 B.11 C.9 D.12答案:B3.矩陣矩陣是m行n列(m×n)的二維數(shù)組,需要使用“[]”、“,”、“;”、空格等符號創(chuàng)建。例:用三種方法創(chuàng)建矩陣a=123423459876分類函數(shù)名功能例子輸入結(jié)果特殊矩陣magic(N)產(chǎn)生N階魔方矩陣(矩陣的行、列和對角線上元素的和相等)magic(3)8

1

63

5

74

9

2eye(m,n)產(chǎn)生m×n的單位矩陣,對角線全為1eye(2,3)1

0

00

1

0特殊數(shù)組zeros(d1,d2,d3,…)產(chǎn)生d1×d2×d3…的全0數(shù)組zeros(2,3)0

0

00

0

0ones(d1,d2,d3,…)產(chǎn)生d1×d2×d3…的全1數(shù)組ones(2,3)1

1

11

1

1rand(d1,d2,d3,…)產(chǎn)生均勻分布的隨機數(shù)組,元素取值范圍0.0~1.0rand(3,2)0.9501

0.48600.2311

0.89130.6068

0.7621randn(d1,d2,d3,…)產(chǎn)生正態(tài)分布的隨機數(shù)組randn(2,3)-0.4326

0.1253

-1.1465-1.6656

0.2877

1.19094.特殊矩陣和數(shù)組2.2.2數(shù)組的操作1.?dāng)?shù)組的元素(1)全下標(biāo)方式全下標(biāo)方式是指n維數(shù)組中元素通過n個下標(biāo)來引用:a(d1,d2,d3….)(2)單下標(biāo)方式數(shù)組元素用單下標(biāo)引用,就是先把數(shù)組的所有列按先左后右的次序連接成“一維長列”,然后對元素位置進行編號。以m×n的矩陣a為例,元素a(i,j)對應(yīng)的單下標(biāo)=(j-1)×m+i。2.子矩陣的產(chǎn)生(1)用全下標(biāo)方式注意:下標(biāo)為“:”表示向量的所有元素,下標(biāo)為“end”表示某一維中的最后一個元素。(2)用單下標(biāo)方式>>a([10;11;12])>>a(10:12)'>>a(10:end)'>>a([10;11;end])練習(xí):已知數(shù)組a=,則a(:,end)是指______

A.所有元素 B.第一行元素C.第三列元素 D.第三行元素答案:C3.?dāng)?shù)組的賦值數(shù)組的賦值包括全下標(biāo)方式、單下標(biāo)方式和全元素方式。全下標(biāo)方式:a(i,j,k…)=b,給a數(shù)組的部分元素賦值,則b數(shù)組的行列數(shù)必須等于a數(shù)組的行列數(shù)。單下標(biāo)方式:a(n)=b,b為向量,元素個數(shù)必須等于a矩陣的元素個數(shù)。全元素方式:a=b,給a數(shù)組的所有元素賦值,則b數(shù)組的元素總數(shù)必須等于a矩陣的元素總數(shù),但行列數(shù)不一定相等。例:>>y=[111;222;333];>>x=y %全元素方式賦值數(shù)組元素x=111222333>>x(1,4)=100x=111100222033304.矩陣的合并矩陣的合并就是把兩個以上的矩陣連接起來得到一個新矩陣,“[]”符號可以作為矩陣合并操作符,命令格式如下:c=[ab] %將矩陣a和b水平方向合并為cc=[a;b] %將矩陣a和b垂直方向合并為c>>a=ones(2,3) %全1矩陣>>b=eye(2,3) %對角為1矩陣>>c=horzcat(a,b) %水平合并c=1111001110105.?dāng)?shù)組元素的刪除在MATLAB中可以對數(shù)組中的單個元素、子矩陣和所有元素進行刪除操作,刪除就是將其賦值為空矩陣(用[]表示)。>>x=[123;456;789];>>x(:,3)=[]x=1245782.2.3矩陣和數(shù)組函數(shù)1.矩陣的常用函數(shù)det(x)、rank(x)、inv(x)、[v,d]=eig(x)、diag(x)、[q,r]=qr(x)、triu(x)和tril(x)2.?dāng)?shù)組翻轉(zhuǎn)常用數(shù)組翻轉(zhuǎn)函數(shù):sort(x)、flipud(x)、fliplr(x)、flipdim(x,dim)、rot90(x,k)、transpose(x)、reshape(x,[行,列])3.?dāng)?shù)組查找一般用于在比較命令后面,查找非零元素。其命令格式如下:[a,b,…]=find(x)n=find(x)4.?dāng)?shù)據(jù)統(tǒng)計MATLAB的數(shù)據(jù)統(tǒng)計分析是按列進行的,包括max、min、std、mean、sum。練習(xí)1.產(chǎn)生10個隨機整數(shù)的行向量,范圍在0~10之間,取出最大值并確定最大值位置,然后進行按降序排序。a=round(10*rand(1,10))[n,m]=max(a)b=sort(a,2,'descend')2.2.4矩陣和數(shù)組的算術(shù)運算MATLAB的二維數(shù)組和矩陣從外觀和數(shù)據(jù)結(jié)構(gòu)上看沒有區(qū)別,矩陣的運算規(guī)則是按照線性代數(shù)運算法則定義的,但是有著明確而嚴格的數(shù)學(xué)規(guī)則。1.矩陣運算矩陣的基本運算是+、-、×、÷和乘方(^)等。(1)矩陣的加、減運算A+B和A-B(2)矩陣的乘法運算A*B(3)矩陣的除法運算矩陣的除法運算表達式有兩種:A\B %左除A/B %右除(4)矩陣的乘方A^B(5)矩陣的轉(zhuǎn)置A' %矩陣A的轉(zhuǎn)置例2-12用矩陣除法求方程組的解,已知方程組:解:X=A\B是方程A*X=B的解,將該方程變換成A*X=B的形式。其中:>>A=[2-31;1-11;131];>>B=[8;7;6];>>X=A\B2.?dāng)?shù)組運算數(shù)組的乘、除、乘方和轉(zhuǎn)置運算符號為矩陣的相應(yīng)運算符前面加“.”,數(shù)組的乘、除、乘方和轉(zhuǎn)置運算格式如下:A.*B %數(shù)組A和數(shù)組B對應(yīng)元素相乘A./B %數(shù)組A除以數(shù)組B的對應(yīng)元素A.\B %數(shù)組B除以數(shù)組A的對應(yīng)元素A.^B %數(shù)組A和數(shù)組B對應(yīng)元素的乘方A.' %數(shù)組A的轉(zhuǎn)置例2-14

使用數(shù)組算術(shù)運算法則進行向量的運算。>>t=0:pi/3:2*pi; %t為行向量>>x=sin(t)*cos(t)???Errorusing==>mtimesInnermatrixdimensionsmustagree.>>x=sin(t).*cos(t)x=00.4330-0.4330-0.00000.4330-0.4330-0.0000>>y=sin(t)./cos(t)y=01.7321-1.7321-0.00001.7321-1.7321-0.0000練習(xí)求解方程組【例2-15】使用數(shù)組函數(shù)進行運算。>>a=ones(3); %全1的3行3列矩陣>>b=a*a; %計算矩陣乘積>>c=sqrt(b) %計算數(shù)組開方>>x=[123];>>csumx=cumsum(x) %計算每兩個元素的累積和csumx=136>>permsx=perms(x) %將向量進行排列2.2.5多維數(shù)組三維數(shù)組的元素存放遵循“單下標(biāo)”的編號規(guī)則:第一頁第一列下接該頁的第二列,下面再接第三列,依此類推;第一頁的最后列下面接第二頁第一列,如此進行,直至結(jié)束。1.多維數(shù)組的創(chuàng)建(1)直接賦值創(chuàng)建(2)由二維數(shù)組擴展(3)使用cat函數(shù)創(chuàng)建>>a(:,:,1)=[12;34];>>a(:,:,2)=[11;22]a(:,:,1)=1234a(:,:,2)=1122>>b=[109;87];>>b(:,:,2)=[65;43]b(:,:,1)=10987b(:,:,2)=6543>>a=[12;34];>>b=[109;87];>>c2=cat(3,a,b)%按第三維連接c2(:,:,1)=1234c2(:,:,2)=109872.3字符串

2.3.1創(chuàng)建字符數(shù)組和字符串?dāng)?shù)組字符串由多個字符組成,是1×n的字符數(shù)組;每一個字符都是字符數(shù)組的一個元素,以ASCII碼的形式存放并區(qū)分大小,而顯示的形式則是可讀的字符。(1)創(chuàng)建字符數(shù)組>>s1='matlab7.3's1=matlab7.3>>s3=char(65,'A') (2)創(chuàng)建字符串?dāng)?shù)組使用雙引號("")創(chuàng)建字符串?dāng)?shù)組>>ss1=["Hello","MATLAB"]使用string函數(shù)創(chuàng)建字符串?dāng)?shù)組>>ss2=string(s2)使用strings函數(shù)創(chuàng)建字符串?dāng)?shù)組>>ss3=strings([1,3])ss3=1×3stringarray"""""">>ss3(1,1)=s1ss3="HelloMATLAB"""""字符串?dāng)?shù)組可以使用abs、double、str2double轉(zhuǎn)換成數(shù)值型,數(shù)字可以使用num2str轉(zhuǎn)換成字符數(shù)組。使用char將其他類型數(shù)值轉(zhuǎn)換為字符數(shù)組,使用string將其他類型數(shù)值轉(zhuǎn)換為字符串?dāng)?shù)組。【例2-16】使用字符串與數(shù)值轉(zhuǎn)換來進行字符加密。>>s1='MATLAB';>>s2=s1+10 %每個元素的ASCII碼值+10s2=877594867576>>s12=char(s2) %轉(zhuǎn)換為加密字符s12='wk~vkl'>>s3=[s1,'2021']%合并字符數(shù)組s3='MATLAB2021'練習(xí):已知s='顯示''hello''',則s的元素個數(shù)是______ A.12 B.9 C.7 D.18答案:B2.3.2字符串函數(shù)(1)合并字符串使用append,strcat,strvcat進行合并。【例2-17】對字符串進行合并。>>s1='a+b=';s2=99;>>str1=strcat(str1,str2) %將數(shù)據(jù)99轉(zhuǎn)換成字符str1='a+b=c'>>ss1="Hello";ss2="World!";>>str2=append(ss1,'',ss2)str2="HelloWorld!"(2)聯(lián)接字符串?dāng)?shù)組使用join函數(shù)合并字符串?dāng)?shù)組,strjoin函數(shù)聯(lián)接數(shù)組中的字符串,plus函數(shù)將字符串?dāng)?shù)組相加?!纠?-17續(xù)】對字符串?dāng)?shù)組進行合并。>>ss12=[ss1,ss2]ss12="Hello""World!">>ss3="MATLAB!">>str4=join([ss1,ss2;ss1,ss3],'-') str4="Hello-World!""Hello-MATLAB!">>str5=plus([ss1,ss1],[ss2,ss4]) str5="HelloWorld!""HelloMATLAB!"(3)字符串拆分字符串也可以進行拆分,使用split函數(shù)將字符串在分隔符處拆分,splitlines是在換行符處拆分,strsplit函數(shù)是在指定分隔符處拆分字符串或字符向量?!纠?-17續(xù)】對字符串?dāng)?shù)組和字符數(shù)組進行拆分。>>splitstr1=split(str4,'-')%在“-”處拆分splitstr1="Hello""World!""Hello""MATLAB!">>splitstr2=strsplit(str2)%在空格處拆分splitstr2="Hello""World!"字符串的匹配模式(1)設(shè)置搜索和匹配文本的模式模式定義匹配文本的規(guī)則,可以使用模式函數(shù)、運算符(+、-和~)和文本構(gòu)建模式表達式?!纠?-18】將文本中的電話號碼匹配出來。>>str=["Phonenumberi,"AddressisNo.15XingfuRoad"];>>p1=digitsPattern;>>conp1=contains(str,p1) %確定是否包含數(shù)字>>pe=extract(str,p1) %提取字符串中的數(shù)字pe=1×2stringarray"15"(2)使用正則表達式正則表達式是用于定義特定模式的字符,用表示不同模式的段組合成正則表達式?!纠?-18續(xù)】將文本中的地址信息提前出來。>>p3="No.+\w*"; %正則表達式取地址>>conp3=regexp(str,p3,'match') %確定是否匹配地址conp3=1×2cellarray{0×0string}{["No.15XingfuRoad"]}>>newstr=regexprep(str,"No.+\d","No.10") %替換街道號newstr=1×2stringarray"Phonenumberi"AddressisNo.10XingfuRoad"2.字符串的其他操作strcmp比較兩個字符串是否相等,相等為1不等為0,strcmpi忽略大小寫strcmp(s1,s2)0strncmp比較兩個字符串的前n個字符是否相等,相等為1不等為0,strncmpi忽略大小寫strncmp(s1,s2,6)1erase刪除字符串內(nèi)的子字符串,eraseBetween是刪除起點和終點之間的子字符串erase(s1,s2)"R2021b"extract從字符串中提取子字符串,extractAfter、extractBefore、extractBetween分別提取指定位置之后、之前和之間的子字符串extract(s1,digitsPattern)"2021"insertAfter在指定的子字符串后插入字符串,insertBefore是在子字符串前面插入insertAfter(s2,6,'R2021b')"MATLABR2021b"pad為字符串添加前導(dǎo)或尾隨字符pad(s2,10)"MATLAB"lower將字符串轉(zhuǎn)換為小寫,upper是轉(zhuǎn)換為大寫lower(s1)'matlabr2021b'strip刪除字符串中的前導(dǎo)和尾部字符strip(pad(s2,10))"MATLAB"strjust對齊字符串(左對齊、右對齊、居中)strjust([s1,''],'right')'matlab7.3'reverse反轉(zhuǎn)字符串中的字符順序reverse(s1)"b1202RBALTAM"eval執(zhí)行字符串eval("s1+s2")"MATLABR2021bMATLAB"2.4日期和時間

2.4.1日期時間的表示格式MATLAB以三種格式表示:日期字符串、連續(xù)的日期數(shù)值和日期向量,不同的日期格式可以相互轉(zhuǎn)換。1.日期格式(1)日期字符串日期字符串是最常用的,有多種輸出格式。例,“2007年1月1日”可以表示為:‘01-Jan-200708:50:10’、‘01-Jan-2007’、‘01/01/2007’、等。(2)連續(xù)的日期數(shù)值 733043(3)日期向量[yearmonthdayhourminutesecond]2.4.2日期時間函數(shù)1.獲取系統(tǒng)時間date:按照日期字符串格式獲取當(dāng)前系統(tǒng)時間;now:按照連續(xù)的日期數(shù)值格式獲取當(dāng)前系統(tǒng)時間;clock:按照日期向量格式獲取當(dāng)前系統(tǒng)時間。2.提取日期時間信息分別使用year、month、day、hour、minute、second函數(shù)。3.日期時間的顯示格式日期時間的顯示可以使用datestr函數(shù)顯示為字符串的樣式。datestr函數(shù)的格式如下:datestr(d,f) %將日期按指定格式顯示4.計時函數(shù)(1)cputime方法cputime是返回MATLAB啟動以來的CPU時間:程序執(zhí)行的時間=程序代碼執(zhí)行結(jié)束后的cputime-在程序代碼執(zhí)行前的cputime(2)tic/toc方法tic在程序代碼開始用于啟動的一個計時器;toc放在程序代碼的最后,用于終止計時器的運行,并返回計時時間就是程序運行時間。(3)etime方法etime方法使用etime函數(shù)來獲得程序運行時間,etime函數(shù)的命令格式如下:etime(t1,t0) %返回t1-t0的值2.5元胞數(shù)組、結(jié)構(gòu)體和映射

2.5.1元胞數(shù)組元胞數(shù)組是常規(guī)數(shù)值數(shù)組的擴展,其基本元素是元胞,每一個元胞可以看成是一個單元(Cell),用來存放各種不同類型不同尺寸的數(shù)據(jù),如矩陣、多維數(shù)組、字符串、元胞數(shù)組和結(jié)構(gòu)體。元胞數(shù)組可以是一維、二維或多維,使用花括號({})表示,每一個元胞以下標(biāo)區(qū)分,下標(biāo)的編碼方式也與矩陣相同,分為單下標(biāo)方式和全下標(biāo)方式。1.創(chuàng)建元胞數(shù)組(1)直接創(chuàng)建>>A={'cell1',[12;34];{[12],'matlab'},0:1:5}>>A(1,1)={'cell1'};>>A(1,2)={[12;34]};>>A(2,1)={{[12],'matlab'}};>>A(2,2)={0:1:5}>>A{1,1}='cell1';>>A{1,2}=[12;34];>>A{2,1}={[12],'matlab'};>>A{2,2}=0:1:5cell1,1cell1,2cell2,1cell2,2'cell1'012345123412'matlab'2.5.2結(jié)構(gòu)體結(jié)構(gòu)體的基本組成是結(jié)構(gòu),每一個結(jié)構(gòu)都包含多個字段(Fields),結(jié)構(gòu)體只有劃分了字段以后才能使用。ps(1).name.color.position'曲線1''red'[0,0,300,300]ps(2).name.color.position'曲線2''blue'[100,100,300,300]圖2-10結(jié)構(gòu)體ps的結(jié)構(gòu)ps(1×2的結(jié)構(gòu)體數(shù)組)創(chuàng)建結(jié)構(gòu)數(shù)組存放圖形對象>>ps(1).name='曲線1';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=1x2structarraywithfields:namecolorposition>>ps(1)=struct('name','曲線1','color','red','position',[0,0,300,300])2.5.3映射映射包含鍵和值,其中鍵用于索引,值類似于字典或關(guān)聯(lián)數(shù)組,可以使用鍵來檢索值,使用映射可以實現(xiàn)快速通過鍵查找值。>>k={'2022010101','2022010102','2019010123','2021020101','2022010115','2020010213'};>>v={{'Tom',20},{'Mary',20},{'John',22},{'Kate',22},{'Mike',22},{'Tom',23}};>>studentsMap=containers.Map(k,v)studentsMap=Mapwithproperties:Count:6KeyType:charValueType:any2.6表格型、時間表和分類型2.6.1表格型表格型數(shù)組是二維表格,就像數(shù)據(jù)庫的表格一樣,可以理解為列是字段(Field),行是記錄(Record)?!纠?_24】創(chuàng)建一個三個字段四個記錄的表格。>>Name={'XiaoHong';'LiMin';'YunDi';'KeLe'};>>Age=[19;18;20;19];>>Gender={'F';'M';'M';'M'};>>T1=table(Name,Age,Gender)T1=NameAgeGender___________________'XiaoHong'19'F''LiMin'18'M''YunDi'20'M''KeLe'19'M'>>n=T1.Name %取表格字段n='XiaoHong''LiMin''YunDi''KeLe'>>n1=T1.Name{1}%取表格中的元素n1=XiaoHong2.6.2時間表時間表timetable每一行關(guān)聯(lián)一個時間。時間表可以方便的按照時間來執(zhí)行運算,包括按時間排序、移動和同步,并能對缺失值進行查找、填充等操作。【例2_25】使用時間表記錄測量的天氣狀況數(shù)據(jù)。>>Time=datetime({'2021-11-1817:48';'2021-11-1819:03';'2021-11-1820:03'});>>Temp=[17.3;16.4;15.3];>>TimeTemp1=timetable(Time,Temp) %創(chuàng)建時間表TimeTemp1=3×1timetableTimeTemp_______________________2021-11-1817:48:0017.32021-11-1819:03:0016.42021-11-1820:03:0015.3>>TimeTemp2=retime(TimeTemp1,'hourly','linear') %得出每小時整點數(shù)據(jù)TimeTemp2=5×1timetableTimeTemp_________________________2021-11-1817:00:0017.8762021-11-1818:00:0017.1562021-11-1819:00:0016.4362021-11-1820:00:0015.3552021-11-1821:00:0014.2552.6.3分類型分類型數(shù)據(jù)是指限定范圍的離散分類,用來高效方便的存放非數(shù)值數(shù)據(jù),可以用分類型數(shù)據(jù)對表格中的數(shù)據(jù)分組?!纠?_26】創(chuàng)建一個分類型數(shù)據(jù)。>>a=eye(3);>>b=categorical(a) %創(chuàng)建分類型數(shù)據(jù)>>c=categories(b) %對數(shù)據(jù)分類c='0''1'>>d=countcats(b) %計算各列的分類數(shù)d=2221112.7關(guān)系運算和邏輯運算

2.7.1邏輯變量MATLAB中邏輯型(logical)數(shù)據(jù)只有“1”和“0”,分別表示true和false兩種狀態(tài),邏輯型變量只占1個字節(jié)。函數(shù)logical可以用來將數(shù)值型轉(zhuǎn)換為邏輯型,任何非零的數(shù)值都轉(zhuǎn)換為邏輯1,數(shù)值0轉(zhuǎn)換為邏輯0。例如:>>a=0:5a=012345>>b=logical(a) %轉(zhuǎn)換為邏輯型Warning:Valuesotherthan0or1convertedtological1.b=0111112.7.2關(guān)系運算MATLAB常用的關(guān)系操作符有<、<=、>、>=、==(等于)、~=(不等于)。關(guān)系運算規(guī)則:如果比較的兩個變量都是標(biāo)量,則結(jié)果為1(true)或0(false);如果比較的兩個變量都是數(shù)組,則必須尺寸大小相同,結(jié)果也是同樣大小的數(shù)組;如果比較的是一個數(shù)組和一個標(biāo)量,則把數(shù)組的每個元素分別與標(biāo)量比較,結(jié)果為與數(shù)組大小相同的數(shù)組。2.7.3邏輯運算1.元素的邏輯運算元素的邏輯運算是將數(shù)組中的元素一一進行邏輯運算,常用的邏輯運算符:&(與)、|(或)、~(非)和xor(異或)。在邏輯運算中,非0元素表示true,0元素表示false。例如:num=4742855320678426838>>n=(num>60)&(num<100) %判斷是否大于60小于100n=0010011010例:單相半波整流波形。>>t=0:0.1:2*pi;>>y=sin(t);>>y0=(y>=0)y0=Columns1through1411111111111111Columns15through2811111111111111Columns29through4211110000000000Columns43through5600000000000000>>y1=y.*y0>>plot(t,y1)2.先決邏輯運算先決邏輯運算符有:&&(先決與)和||(先決或)。比較兩個語句的不同:>>x=0>>y=(x~=0)&&(100/x>10) >>x=0>>y=(x~=0)&(100/x>10) 3.位邏輯運算位邏輯運算函數(shù)有:bitand(位與)、bitor(位或)、bitcmp(位非)和bitxor(位異或)。 1000101100001111c位邏輯運算過程ab練習(xí)運行命令bitand(20,15)的結(jié)果是______

A.15 B.20 C.4 D.5答案:C2.7.4運算符優(yōu)先級各類運算符的優(yōu)先級為:括號→算術(shù)運算符→關(guān)系運算符→邏輯運算符各符號優(yōu)先順序為:括號()→轉(zhuǎn)置'.'冪^.^→一元加減+-邏輯非~→乘*.*除/./\.\→加減+-→冒號:→關(guān)系運算>>=<<===~=→元素邏輯運算與&→元素邏輯運算或|→先決邏輯運算與&&→先決邏輯運算或||例:x1=(x>pi)&(x<4*pi)與

x1=x>pi&x<4*pi相同練習(xí):計算x從0到20間隔為1的行向量,y=sin(x)中,π<x<4π范圍中y的所有值。x=0:20;x1=(x>pi)&(x<4*pi)x=x1.*xy=sin(x)2.8數(shù)組的信息獲取和數(shù)據(jù)類型1.數(shù)組的尺寸2.數(shù)組的檢測函數(shù)以“is”開頭,函數(shù)返回的結(jié)果為邏輯型。3.數(shù)組類型的轉(zhuǎn)換使用數(shù)據(jù)類型函數(shù):double、int8、char等;“數(shù)據(jù)類型+2+另一種數(shù)據(jù)類型”轉(zhuǎn)換函數(shù):int2str、num2str、array2table等。函數(shù)名功能sized=size(A)%以行向量d表示A數(shù)組的各維尺寸[m1,m2,…]=size(A)%返回數(shù)組A的各維尺寸lengthd=length(A)%返回數(shù)組A各維中最大維的長度ndimsn=ndims(A)%返回數(shù)組A的維數(shù)numeln=numel(A)%返回數(shù)組A的元素總個數(shù)classc=class(A)%返回數(shù)組的類型2.9多項式一個多項式按降冪排列為:p(x)=anxn+an-1xn-1+…+a1x+a0在MATLAB中用行向量來表示多項式的各項系數(shù),使用長度為n+1的行向量按降冪排列,用0表示多項式中某次冪的缺項,則表示為:p=[anan-1…a1a0]例如,p(x)=x3-4x2+3x+1可表示為p=[1-431];p(x)=x3+5x2+2x可表示為p=[1520]。2.9.1多項式求根和求值1.多項式求根使用roots函數(shù)來計算多項式的根,多項式的根以列向量的形式表示;反過來,也可以根據(jù)多項式的根使用poly函數(shù)獲得多項式。多項式p1=x4-6x3+11x2-6x=x(x-3)(x-2)(x-1)

2.多項式求值函數(shù)polyval和polyvalm可以用來計算多項式在給定變量時的值。2.9.2多項式的算術(shù)運算1.多項式的乘法和除法多項式的乘法和除法運算分別使用函數(shù)conv和deconv來實現(xiàn)。p=conv(pl,p2) %計算多項式p1和p2的乘積[q,r]=deconv(pl,p2) %計算多項式p1與p2的商練習(xí):計算三個多項式s1、s2和s3的乘積,則算式為______S1=[12]S2=[13]S3=[14]A.conv(s1,s2,s3) B.s1*s2*s3C.conv(conv(s1,s2),s3)D.conv(s1*s2*s3)答案:C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論