版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章數(shù)值數(shù)組及向量化運算教學目標教學重點教學內容教學目標掌握數(shù)組的創(chuàng)建方法掌握數(shù)組的標識與尋訪掌握數(shù)組的運算了解“非數(shù)”NaN和“空”數(shù)組掌握關系操作和邏輯操作教學重點數(shù)組的創(chuàng)建方法數(shù)組的標識與尋訪關系操作和邏輯操作教學內容3.1數(shù)值計算的特點和地位3.2一、二維數(shù)值數(shù)組的創(chuàng)建和尋訪3.3數(shù)組運算和向量化編程3.4“非數(shù)”NaN和“空”數(shù)組3.5關系操作和邏輯操作3.1數(shù)值計算的特點和地位符號計算可以對包含變量字符,參數(shù)字符和數(shù)字的表達式進行推理,運算,并給出符號結果。缺點:有很多問題無法解,有很多問題求解時間過長。symstx ft=t^2*cos(t)sx=int(ft,t,0,x)ft=t^2*cos(t)sx=x^2*sin(x)-2*sin(x)+2*x*cos(x)符號計算解法:dt=0.05;t=0:dt:15;Ft=t.^2.*cos(t);Sx=dt*cumtrapz(Ft);
plot(t,Sx,'.k','MarkerSize',12)xlabel('x'),ylabel('Sx'),gridon
數(shù)值計算解法:ezplot(sx,[0,15])例3.1-2已知求(1)符號計算解法symst;ft=exp(-sin(t));sx=int(ft,t,0,4)Warning:Explicitintegralcouldnotbefound.sx=int(1/exp(sin(t)),t=0..4)(2)數(shù)值計算解法delt=0.01;x=0:delt:4;y=exp(-sin(x));sx=delt*cumtrapz(y);plot(x,y,'r','LineWidth',6);holdon;plot(x,sx,'.b','MarkerSize',15);plot(x,ones(size(x)),'k');3.2數(shù)值數(shù)組的創(chuàng)建和尋訪3.2.1一維數(shù)組的創(chuàng)建3.2.2二維數(shù)組的創(chuàng)建3.2.3二維數(shù)組元素的標識和尋訪3.2.4數(shù)組操作技法綜合(1)冒號生成法:
array=a:inc:b<向量>a--數(shù)組的第一個元素
inc--采樣點之間的間隔,即步長.最后一個元素不一定等于b,其大小為b’=a+inc*fix((b-a)/inc);步長可以省略,默認為1;inc可以取正或負數(shù),但要注意當取正時,要保證b>a,數(shù)組最后一個元素不超過b,取負時b<a,最后一個元素不小于b.特點:
等差數(shù)列3.2.1
一維數(shù)組的創(chuàng)建和尋訪
1.遞增/遞減一維數(shù)組的創(chuàng)建:abInc<0b’abinc>0b’(2)線性(或對數(shù))定點采樣法在設定的總點數(shù)下,均勻采樣生成一維行數(shù)組.格式為:
x=linspace(a,b,n)特點:方便對數(shù)組的元素的總個數(shù)進行控制,最后一個元素肯定是設定之值.a數(shù)組初始值b數(shù)組最后值n數(shù)組總個數(shù)增量的計算inc=(b-a)/(n-1)等效于:x=a:(b-a)/(n-1):b
1.遞增/遞減一維數(shù)組的創(chuàng)建:
x=logspace(a,b,n)3.2.1
一維數(shù)組的創(chuàng)建和尋訪
2.其他類型一維數(shù)組的創(chuàng)建:(1)逐個元素輸入法:
如:array=[2,pi/2,sqrt(3),3+5i]使用場合及特點使用場合:數(shù)據(jù)元素比較少并都已知.如對少量實驗數(shù)據(jù)的處理可用此種方法.x=[1,2,3,4,5]'行向量列向量
2.其他類型一維數(shù)組的創(chuàng)建:(2)運用MATLAB函數(shù)生成法:MATLAB特殊形式數(shù)組生成函數(shù)見表3.2-1:均勻分布隨機數(shù)組rand(1,n),
全1數(shù)組ones(1,n)指令含義指令含義diag產生對角形數(shù)組(二維以下)rand產生均勻分布隨機數(shù)組eye產生單位數(shù)組(二維以下)randn產生正態(tài)分布隨機數(shù)組magic產生魔方數(shù)組(二維以下)zeros產生全0數(shù)組ones產生全1數(shù)組3.一維數(shù)組的子數(shù)組尋訪和賦值
x=[012345]; x(3) x([123]),x([123]') x(4:6)=x([1,2,3])%x(4:6)=[0,1,2] x(3:end)%end表示最后一個下標
x(3:-1:1) x(find(x>2))
注意:數(shù)組的第一個元素為x(1),與C語言中第一個元素為x[0]不同3.2.2二維數(shù)組的創(chuàng)建創(chuàng)建二維數(shù)組與創(chuàng)建一維數(shù)組的方式類似。在創(chuàng)建二維數(shù)組時,整個輸入數(shù)組以方括號[]為其首尾。用逗號(,)或者空格(_)區(qū)分同一行的不同元素,用分號(;)或者回車(Enter)區(qū)分不同行。1.小規(guī)模數(shù)組的直接輸入法2.中規(guī)模數(shù)組的數(shù)組編輯器創(chuàng)建法3.中規(guī)模數(shù)組的M文件創(chuàng)建法例3.2.4利用M文件創(chuàng)建和保存數(shù)組1.編寫M文件并運行AM=[100,101,102;103,104,105;106,107,108],保存為文件名MyMatrix.m2.在命令窗中輸入MyMatrix3.2.2二維數(shù)組的創(chuàng)建4.利用MATLAB函數(shù)創(chuàng)建數(shù)組指令含義指令含義diag產生對角形數(shù)組(二維以下)rand產生均勻分布隨機數(shù)組eye產生單位數(shù)組(二維以下)randn產生正態(tài)分布隨機數(shù)組magic產生魔方數(shù)組(二維以下)zeros產生全0數(shù)組ones產生全1數(shù)組【例3.2-5】標準數(shù)組產生的演示。ones(2,4)ans=11111111
randn('state',0)randn(2,3)ans=-0.43260.1253-1.1465-1.66560.28771.1909D=eye(3)D=100010001diag(D)ans=1113.2.3二維數(shù)組元素的標識和尋訪數(shù)組名(行下標m,列下標n)數(shù)組的第m行n列的元素.A=[1,2,3;4,5,6]A(2,3)=61)全下標標識2)單下標標識只用一個下標來指定元素在數(shù)組中的位置-將數(shù)組中所有的元素按照從上到下(列),從左到右的方法從1開始編號,其編號就是單下標.A(4)=2
|1①2④3⑦|A=|4②5⑤6⑧||7③8⑥9⑨|A(:)—按單下標方式列出全部元素,組成列向量。A(:)=[1,4,7,2,5,8,3,6,9]'A=1234563)邏輯1標識法A=[1,2,3,4,5];L=logical([1,0,1,0,1])A(L)ans=[1,3,5]【例3.2-6】數(shù)組標識與尋訪A=zeros(2,6) A=
000000000000A(:)=1:12A=135791124681012A(2,4) ans=8A(8)ans=8A(:,[1,3])ans=1526A(:,4:end)ans=791181012
A(2,1:2:5)=[-1,-3,-5]A=1357911
-14-38-512B=A([1,2,2,2],[1,3,5])B=159-1-3-5-1-3-5-1-3-5L=A<3L=100000101010A(L)=NaNA=
NaN357911
NaN4NaN8NaN12A([1,2,5,6]')ans=12563.2.4數(shù)組操作技法綜合【例3.2-7】數(shù)組操作函數(shù)reshape,diag,repmat的用法;空陣[]
刪除子數(shù)組的用法。a=1:8 A=reshape(a,4,2)A=reshape(A,2,4)a=12345678A=15263748A=13572468D1=repmat(B,2,4) %D1=10101010040404041010101004040404D1([1,3],:)=[]%刪除1,3行
D1=0404040404040404b=diag(A) b=14B=diag(b)B=10043.2.4數(shù)組構作技法綜合【例3.2-8】函數(shù)flipud,fliplr,rot90對數(shù)組的操作體現(xiàn)著“矩陣變換”。A=reshape(1:9,3,3)A=147258369B=flipud(A)B=369258147C=fliplr(A) %C=741852963D=rot90(A,2)%逆時針旋轉D=9638527413.3數(shù)組運算1.函數(shù)關系數(shù)值計算模型的分類個別的,無規(guī)律的數(shù)據(jù)集所執(zhí)行的函數(shù)關系運算;一組有規(guī)律數(shù)據(jù)需要反復所執(zhí)行的函數(shù)關系運算;一組有規(guī)律數(shù)據(jù)按矩陣運算法則執(zhí)行的函數(shù)關系運算。3.3.1數(shù)組運算的由來和規(guī)則對一般編程,后兩種運算程序包含一重或多重循環(huán)體。2.提高程序執(zhí)行性能的三大措施JIT(justintime)-Accelerator;數(shù)組運算;向量或矩陣運算。3.3.1數(shù)組運算的由來和規(guī)則3.數(shù)組運算規(guī)則數(shù)組運算是指每個對應元素之間的運算,比如對應元素相加,相減,相乘,相除等,而矩陣運算則服從線性代數(shù)中的矩陣運算規(guī)則.數(shù)組運算符是.opr,opr運算符為+,-,*,/,\,^,
'
矩陣運算則沒有在操作符左邊加.
,matlab中矩陣的運算是按照線性代數(shù)中的定義進行的。詳細的數(shù)組運算符意義見表3.3-1.數(shù)組的加減法數(shù)組加減法為數(shù)組元素的加減法,與矩陣加減法相同。利用運算符“+”和“-”實現(xiàn)該運算。需要注意的是相加或相減的兩個數(shù)組必須有相同的維數(shù),或者是數(shù)組與數(shù)值相加減。數(shù)組的乘除法數(shù)組乘除為元素的乘除,通過運算符“.*”和“./”來實現(xiàn)。運算時需要兩個數(shù)組有相同的維數(shù),或者數(shù)組與數(shù)值相乘除。數(shù)組的乘方數(shù)組乘方用符號“.^”實現(xiàn)。數(shù)組乘方運算以三種方式進行。底為數(shù)組,指數(shù)為標量的形式。這種形式的結果是將數(shù)組的每個元素進行指數(shù)相同的乘方。返回的結果為與底維數(shù)相同的數(shù)組,結果數(shù)組的每個元素為底中相應元素的乘方。底為標量,指數(shù)為數(shù)組的形式。該形式返回的結果為數(shù)組,維數(shù)與指數(shù)數(shù)組相同。結果數(shù)組的每個元素以標量為底,以指數(shù)數(shù)組相應元素為指數(shù)做乘方的結果。底和指數(shù)都是數(shù)組的形式。此時兩個數(shù)組需要有相同的維數(shù)。返回結果為一個數(shù)組,維數(shù)與前面兩個數(shù)組相同,每個元素為底數(shù)數(shù)組和指數(shù)數(shù)組相應元素做乘方的結果。函數(shù)f(.)的數(shù)組運算規(guī)則函數(shù)數(shù)組運算規(guī)則的定義
x11x12…x1n
x21x22…x2n
對于(m*n)數(shù)組X=
…………=[xij]mxn
xm1xm2…xmn
函數(shù)f(.)的數(shù)組運算規(guī)則是指:
f(X)=[f(xij)]mxn也就是對數(shù)組中每個元素都實施同樣的操作.名稱含義名稱含義名稱含義acos反余弦asinh反雙曲正弦csch雙曲余割acosh反雙曲余弦atan反正切sec正割acot反余切atan2四象限反正切sech雙曲正割acoth反雙曲余切atanh反雙曲正切sin正弦acsc反余割cos余弦sinh雙曲正弦acsch反雙曲余割cosh雙曲余弦tan正切asec反正割cot余切tanh雙曲正切asech反雙曲正割coth雙曲余切asin反正弦csc余割
三角函數(shù)和雙曲函數(shù)4.
數(shù)組運算符和數(shù)組運算函數(shù)
指數(shù)函數(shù)名稱含義名稱含義名稱含義exp指數(shù)(ex)log10常用對數(shù)pow22的冪log自然對數(shù)log2以2為底對數(shù)sqrt平方根
復數(shù)函數(shù)名稱含義名稱含義名稱含義abs?;蚪^對值conj復數(shù)共軛real復數(shù)實部angle相角(弧度)imag復數(shù)虛部
坐標變換函數(shù)名稱含義名稱含義cart2sph直角坐標變球坐標pol2cart極坐標變直角坐標cart2pol直角坐標變極坐標sph2cart球坐標變直角坐標
圓整函數(shù)與求余函數(shù)名稱含義名稱含義ceil向+∞圓整函數(shù)rem求余數(shù)fix向0圓整函數(shù)round向最近整數(shù)圓整函數(shù)floor向-∞圓整函數(shù)sign符號函數(shù)-(-1),+(1)
0(0)mod模除求余clearvr=[0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41];ir=[0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345];
L=length(vr);fork=1:L
r(k)=vr(k)/ir(k);end sr=0; fork=1:L
sr=sr+r(k);endrm=sr/L非向量化程序3.3.2數(shù)組運算與向量化編程向量化編程r=vr./irrm=mean(r)
【例3.3-1】歐姆定律:,其中
r,u,i
分別是電阻(歐姆)、電壓(伏特)、電流(安培)。驗證實驗:據(jù)電阻兩端施加的電壓,測量電阻中流過的電流,然后據(jù)測得的電壓、電流計算平均電阻值。(測得具體數(shù)據(jù)見程序)。3.3.2數(shù)組運算與向量化編程clearx=-5:0.1:5;y=(-2.5:0.1:2.5)';
N=length(x);M=length(y);forii=1:Mforjj=1:NZ0(ii,jj)=sin(abs(x(jj)*y(ii)));endend非向量化程序【例3.3-2】用間距為0.1的水平線和垂直線均勻分割的矩形域,在所有水平線和垂直線交點上計算函數(shù)y=sin|xy|的值,并圖示。[X,Y]=meshgrid(x,y);Z=sin(abs(X.*Y));
向量化程序norm(Z-Z0)
ans=0比較兩個數(shù)組是否相等(2范數(shù)接近eps)surf(X,Y,Z)xlabel('x')ylabel('y')shadinginterpview([190,70])繪制二元函數(shù)圖形按IEEE規(guī)定,0/0,∞/∞,0*∞等運算都會產生非數(shù),在matlab中記為nan.它具有以下性質:1)nan參與運算所得結果也是nan,即具有傳遞性.2)非數(shù)沒有大小概念,不能比較兩個非數(shù)的大小.功能:真實記述0/0,∞/∞,0*∞運算的后果;避免可能因以上運算而造成的程序執(zhí)行的中斷;在數(shù)據(jù)可視化中,用來裁減圖形.3.4“非數(shù)”和“空”數(shù)組3.4.1非數(shù)NaN【例3.4-1】非數(shù)的產生和性質演示(1)
非數(shù)的產生a=0/0,b=0*log(0),c=inf-inf(2)
非數(shù)的傳遞性0*a,sin(a);(3)
非數(shù)的屬性判斷class(a),isnan(a)isnan唯一能正確判斷非數(shù)的指令3.4.2“空”數(shù)組空數(shù)組的功能:空數(shù)組沒參與運算時,計算結果中的空可以合理地解釋所得結果的含義(如在某數(shù)組中尋找滿足一定條件的數(shù)據(jù),結果沒有,得到空數(shù)組,表示沒有滿足條件的元素);a=[1,2,3];f_array=find(a<0)f_array=Emptymatrix:1-by-0運用空數(shù)組對其他非空數(shù)組賦值,可以改變數(shù)組的大小,但不能改變數(shù)組的維數(shù).A=reshape(-4:5,2,5)
A=-4-2024-3-1135
size(A)ans=25A(:,[2,4])=[]A=-404-315
size(A)ans=23ndims(A)ans=2運用空數(shù)組對其他非空數(shù)組賦值,可以改變數(shù)組的大小,但不能改變數(shù)組的維數(shù).A=rand(2,3,2,4);size(A)ans=2324ndims(A)ans=4A(:,:,[1,2],:)=[]A=Emptyarray:2-by-3-by-0-by-4size(A)ans=2304ndims(A)ans=43.4.2“空”數(shù)組(1)創(chuàng)建”空”數(shù)組的幾種方法a=[]b=ones(2,0),c=zeros(2,0),d=eye(2,0)f=rand(2,3,0,4);array3=1:-5;(2)空數(shù)組的屬性【例3.4-3】關于“空”數(shù)組的算例。class(a)isnumeric(a) isempty(a)%空數(shù)組的判斷ans=doubleans=1ans=1whichandims(a)size(a)aisavariable.ans=2ans=003.5關系操作和邏輯操作3.5.1關系操作3.5.2邏輯操作3.5.3常用邏輯函數(shù)
matlab的約定1)在所有關系表達式和邏輯表達式中,作為輸入的任何非0數(shù)都被看作邏輯真,只有0才被認為是邏輯假.2)所有關系表達式和邏輯表達式的計算結果,即輸出,是一個由0和1作成的邏輯數(shù)組.其中1表示真,0表示假.3)邏輯數(shù)組是一種特殊的數(shù)值數(shù)組,它表示著對事物的判斷結論“真”與”假“3.5關系操作和邏輯操作3.5.1關系操作指令含義指令含義<小于>=大于等于<=小于等于==等于>大于~=不等于說明:1)標量可以與任何維數(shù)的數(shù)組進行比較,比較在此標量和數(shù)組每個元素之間進行,因此比較結果為與被比較數(shù)組同維的數(shù)組.2)數(shù)組進行比較時,兩數(shù)組必須是同維的,結果也得到一個同維的數(shù)組.
|2,4,6||1,3,5|A=|3,5,7|B=|4,6,8||1,8,9||2,7,9||1,1,1||0,0,1|A>B=|0,0,0|A>5=|0,0,1||0,1,0||0,1,1|A=[246;357;189]find(A>5)=>ans=[6,7,8,9]'%得到數(shù)組下標,單下標A(find(A>5))=>ans=[8,6,7,9]'A(find(A>5))=5;%A(A>5)=5A=245355155【例3.5-2】關系運算應用。求近似極限,修補圖形缺口sin(t)/t,
t∈[-2π,2π]t=-2*pi:pi/10:2*pi;y=sin(t)./t;%在t=0處產生非數(shù)tt=t+(t==0)*eps;
%處理分母為0的點yy=sin(tt)./tt;subplot(2,1,1),plot(t,y);axis([-7,7,-0.5,1.2]);xlabel('t'),ylabel('y'),title('殘缺圖形');subplot(2,1,2),plot(tt,yy);axis([-7,7,-0.5,1.2]);xlabel('t'),ylabel('yy'),title('完整圖形')tt=t;tt(find(tt==0))=eps;tt(tt==0)=eps;3.5.2邏輯操作說明:1)標量可以與任何維的數(shù)組運算.邏輯運算在標量與數(shù)組每個元素間進行,因此運算結果是與參與運算的數(shù)組維數(shù)相同的數(shù)組.2)數(shù)組之間也可以進行邏輯運算,參與運算的必須維數(shù)相同.此時運算在兩數(shù)組同位置上的元素之間進行.因此運算結果是與參與運算的數(shù)組維數(shù)相同的數(shù)組.指令
&|
~xor含義與或非異或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農副食品國際貿易代理服務合同
- 2025年度內墻粉刷與智能化管理系統(tǒng)分包合同
- 二零二五年度商業(yè)門面租賃爭議解決合同
- 二零二五年度庭院房產租賃合同解除與違約金合同
- 2025年度體育場館運營管理公司健身教練合同
- 2025年度門面房租賃合同物聯(lián)網(wǎng)技術應用協(xié)議4篇
- 課題申報參考:明代文人“引經(jīng)入戲”研究
- 認識腧穴38課件講解
- 2025年度個人住宅室內外綠化設計與施工合同2篇
- 2025版大型數(shù)據(jù)中心機房建設與運維合同4篇
- 2025水利云播五大員考試題庫(含答案)
- 老年髖部骨折患者圍術期下肢深靜脈血栓基礎預防專家共識(2024版)解讀
- 中藥飲片驗收培訓
- 手術室??谱o士工作總結匯報
- DB34T 1831-2013 油菜收獲與秸稈粉碎機械化聯(lián)合作業(yè)技術規(guī)范
- 蘇州市2025屆高三期初陽光調研(零模)政治試卷(含答案)
- 創(chuàng)傷處理理論知識考核試題及答案
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 《義務教育數(shù)學課程標準(2022年版)》測試題+答案
- 殘疾軍人新退休政策
- 白酒代理合同范本
評論
0/150
提交評論