Matlab_第3章_第1頁
Matlab_第3章_第2頁
Matlab_第3章_第3頁
Matlab_第3章_第4頁
Matlab_第3章_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第 3 章 數(shù)值數(shù)組及向量化運(yùn)算數(shù)值數(shù)組(Numeric Array)和數(shù)組運(yùn)算(Array Operations)始終是MATLAB的核心內(nèi)容。本書從第3章起,全部注意力將集中于數(shù)值數(shù)組及其運(yùn)算。本章系統(tǒng)闡述:數(shù)組浮點算法的特點;一、二維數(shù)值數(shù)組的創(chuàng)建和尋訪;數(shù)組運(yùn)算和向量化編程;實現(xiàn)數(shù)組運(yùn)算的基本函數(shù);常用標(biāo)準(zhǔn)數(shù)組生成函數(shù)和數(shù)組構(gòu)作技法;非數(shù)NaN、“空”數(shù)組概念和應(yīng)用;關(guān)系和邏輯操作。3.1 數(shù)值計算的特點和地位【例3.1-1】已知,求。(1)符號計算解法syms t xft=t2*cos(t)sx=int(ft,t,0,x) ft =t2*cos(t)sx =x2*sin(x)-2*s

2、in(x)+2*x*cos(x) (2)數(shù)值計算解法dt=0.05;t=0:dt:5;Ft=t.2.*cos(t);Sx=dt*cumtrapz(Ft);t(end-4:end)Sx(end-4:end)plot(t,Sx,'.k','MarkerSize',12)xlabel('x'),ylabel('Sx'),grid on ans = 4.8000 4.8500 4.9000 4.9500 5.0000ans = -20.1144 -19.9833 -19.7907 -19.5345 -19.2131圖 3.1-1 在區(qū)間0

3、, 5采樣點上算得的定積分值【例3.1-2】已知,求。(1)符號計算解法syms t xft=exp(-sin(t)sx=int(ft,t,0,4) ft =exp(-sin(t)Warning: Explicit integral could not be found.> In at 58sx =int(exp(-sin(t),t = 0 . 4) (2)數(shù)值計算解法dt=0.05;t=0:dt:4; Ft=exp(-sin(t);Sx=dt*cumtrapz(Ft);Sx(end)plot(t,Ft,'*r','MarkerSize',

4、4)hold onplot(t,Sx,'.k','MarkerSize',15)hold offxlabel('x')legend('Ft','Sx') ans = 3.0632圖 3.1-2 在區(qū)間0, 4中間的被積函數(shù)及其原函數(shù)的離散計算結(jié)果3.2 數(shù)值數(shù)組的創(chuàng)建和尋訪3.2.1 一維數(shù)組的創(chuàng)建 一 遞增/減型一維數(shù)組的創(chuàng)建 二 通用型一維數(shù)組的創(chuàng)建【例3.2-1】一維數(shù)組的常用創(chuàng)建方法舉例。a1=1:6a2=0:pi/4:pia3=1:-0.1:0 a1 = 1 2 3 4 5 6a2 = 0 0.7854

5、1.5708 2.3562 3.1416a3 = Columns 1 through 6 1.0000 0.9000 0.8000 0.7000 0.6000 0.5000 Columns 7 through 11 0.4000 0.3000 0.2000 0.1000 0 b1=linspace(0,pi,4)b2=logspace(0,3,4) b1 = 0 1.0472 2.0944 3.1416b2 = 1 10 100 1000 c1=2 pi/2 sqrt(3) 3+5i c1 = Columns 1 through 3 2.0000 1.5708 1.7321 Column 4

6、3.0000 + 5.0000i rand('state',0) c2=rand(1,5) c2 = 0.9501 0.2311 0.6068 0.4860 0.8913 3.2.2 二維數(shù)組的創(chuàng)建 一 小規(guī)模數(shù)組的直接輸入法【例3.2-2】在MATLAB環(huán)境下,用下面三條指令創(chuàng)建二維數(shù)組C。a=2.7358; b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i C = 1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000i 二 中規(guī)模數(shù)組的數(shù)組編輯器創(chuàng)建法【

7、例3.2-3】根據(jù)現(xiàn)有數(shù)據(jù)創(chuàng)建一個的數(shù)組。圖3.2-1 利用數(shù)組編輯器創(chuàng)建中規(guī)模數(shù)組 三 中規(guī)模數(shù)組的M文件創(chuàng)建法【例3.2-4】創(chuàng)建和保存數(shù)組 AM的 MyMatrix.m 文件。(1) 打開文件編輯調(diào)試器,并在空白填寫框中輸入所需數(shù)組(見圖3.2-2)。(2) 最好,在文件的首行,編寫文件名和簡短說明,以便查閱(見圖3.2-2)。(3) 保存此文件,并且文件起名為 MyMatrix.m 。(4) 以后只要在MATLAB指令窗中,運(yùn)行 MyMatrix.m文件 ,數(shù)組 AM 就會自動生成于 MATLAB內(nèi)存中。圖3.2-2 利用M文件創(chuàng)建數(shù)組 四 利用MATLAB函數(shù)創(chuàng)建數(shù)組【例3.2-5】

8、標(biāo)準(zhǔn)數(shù)組產(chǎn)生的演示。ones(2,4) ans = 1 1 1 1 1 1 1 1 randn('state',0)randn(2,3) ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 D=eye(3) D = 1 0 0 0 1 0 0 0 1 diag(D) ans = 1 1 1 diag(diag(D) ans = 1 0 0 0 1 0 0 0 1 randsrc(3,20,-3,-1,1,3,1) ans = Columns 1 through 10 3 1 3 -1 -3 3 -3 -3 -1 3 1 3 1

9、3 -1 1 1 1 1 1 3 -1 -3 -1 1 -1 3 -1 -1 1 Columns 11 through 20 -1 -1 -3 1 1 -3 3 -1 1 3 1 1 3 -1 -1 -3 -1 -1 1 -31 -1 -3 3 -1 -1 3 -1 3 3 3.2.3 二維數(shù)組元素的標(biāo)識和尋訪【例3.2-6】本例演示:數(shù)組元素及子數(shù)組的各種標(biāo)識和尋訪格式;冒號的使用;end的作用。A=zeros(2,6)A(:)=1:12 A = 0 0 0 0 0 0 0 0 0 0 0 0A = 1 3 5 7 9 11 2 4 6 8 10 12 A(2,4)A(8) ans = 8a

10、ns = 8 A(:,1,3)A(1,2,5,6') ans = 1 5 2 6ans = 1 2 5 6 A(:,4:end) ans = 7 9 11 8 10 12 A(2,1:2:5)=-1,-3,-5 A = 1 3 5 7 9 11 -1 4 -3 8 -5 12 B=A(1,2,2,2,1,3,5 ) B = 1 5 9 -1 -3 -5 -1 -3 -5 -1 -3 -5 L=A<3A(L)=NaN L = 1 0 0 0 0 0 1 0 1 0 1 0A = NaN 3 5 7 9 11 NaN 4 NaN 8 NaN 12 3.2.4 數(shù)組構(gòu)作技法綜合【例 3

11、.2-7】數(shù)組操作函數(shù)reshape, diag, repmat的用法;空陣 刪除子數(shù)組的用法。a=1:8A=reshape(a,4,2)A=reshape(A,2,4) a = 1 2 3 4 5 6 7 8A = 1 5 2 6 3 7 4 8A = 1 3 5 7 2 4 6 8 b=diag(A)B=diag(b) b = 1 4B = 1 0 0 4 D1=repmat(B,2,4) D1 = 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 D1(1,3,: )= D1 = 0 4 0 4 0 4 0 4

12、 0 4 0 4 0 4 0 4 【例3.2-8】函數(shù)flipud, fliplr, rot90對數(shù)組的操作體現(xiàn)著“矩陣變換”。A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9 B=flipud(A) B = 3 6 9 2 5 8 1 4 7 C=fliplr(A) C = 7 4 1 8 5 2 9 6 3 D=rot90(A,2) D = 9 6 3 8 5 2 7 4 1 3.3 數(shù)組運(yùn)算3.3.1 數(shù)組運(yùn)算的由來和規(guī)則 一 函數(shù)關(guān)系數(shù)值計算模型的分類 二 提高程序執(zhí)行性能的三大措施 三 數(shù)組運(yùn)算規(guī)則 四 數(shù)組運(yùn)算符及數(shù)組運(yùn)算函數(shù)3.3.2 數(shù)組運(yùn)算和向

13、量化編程【例 3.3-1】歐姆定律:,其中分別是電阻(歐姆)、電壓(伏特)、電流(安培)。驗證實驗:據(jù)電阻兩端施加的電壓,測量電阻中流過的電流,然后據(jù)測得的電壓、電流計算平均電阻值。(測得的電壓電流具體數(shù)據(jù)見下列程序)。(1)非向量化程序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);for k=1:Lr(k)=vr(k)/ir(k)

14、;end% -sr=0;for k=1:Lsr=sr+r(k);endrm=sr/L rm = 30.5247 (2)向量化程序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;r=vr./irrm=mean(r) r = 31.7857 30.0000 30.9000 29.4483 30.6780 29.8837 30.0669 30.8171 31.4935 3

15、0.1739rm = 30.5247 【例 3.3-2】用間距為0.1的水平線和垂直線均勻分割的矩形域,在所有水平線和垂直線交點上計算函數(shù)的值,并圖示。(1)clearx=-5:0.1:5;y=(-2.5:0.1:2.5)'N=length(x);M=length(y);for ii=1:M for jj=1:N X0(ii,jj)=x(jj); Y0(ii,jj)=y(ii); Z0(ii,jj)=sin(abs(x(jj)*y(ii); endend (2)X,Y=meshgrid(x,y);Z=sin(abs(X.*Y); (3)norm(Z-Z0) ans = 0 (4)sur

16、f(X,Y,Z)xlabel('x')ylabel('y')shading interpview(190,70) 圖 3.3-1 指定域上的二元函數(shù)圖形3.4 “非數(shù)”和“空”數(shù)組3.4.1 非數(shù)NaN【例3.4-1】非數(shù)的產(chǎn)生和性質(zhì)演示。(1)非數(shù)的產(chǎn)生a=0/0,b=0*log(0),c=inf-inf Warning: Divide by zero.a = NaNWarning: Log of zero.b = NaNc = NaN (2)非數(shù)的傳遞性0*a,sin(a) ans = NaNans = NaN (3)非數(shù)的屬性判斷class(a)isnan

17、(a) ans =doubleans = 1 【例3.4-2】非數(shù)元素的尋訪。rand('state',0)R=rand(2,5);R(1,5)=NaN;R(2,3)=NaN R = 0.9501 0.6068 0.8913 0.4565 NaN 0.2311 0.4860 NaN 0.0185 0.4447 LR=isnan(R) LR = 0 0 0 0 1 0 0 1 0 0 si=find(LR)ri,ci=ind2sub(size(R),si)rj,cj=find(LR)disp('非數(shù)在二維數(shù)組R中的位置')disp('單下標(biāo)時的第'

18、,int2str(si(1),'和第',int2str(si(2),'個元素') si = 6 9ri = 2 1ci = 3 5rj = 2 1cj = 3 5非數(shù)在二維數(shù)組R中的位置單下標(biāo)時的第6和第9個元素 3.4.2 “空”數(shù)組【例3.4-3】關(guān)于“空”數(shù)組的算例。(1)創(chuàng)建“空”數(shù)組的幾種方法a=b=ones(2,0),c=zeros(2,0),d=eye(2,0)f=rand(2,3,0,4) a = b = Empty matrix: 2-by-0c = Empty matrix: 2-by-0d = Empty matrix: 2-by-0f =

19、 Empty array: 2-by-3-by-0-by-4 (2)“空”數(shù)組的屬性class(a)isnumeric(a)isempty(a) ans =doubleans = 1ans = 1 which a ndims(a) size(a) a is a variable.ans = 2ans = 0 0 (3)“空”數(shù)組用于子數(shù)組的刪除和大數(shù)組的大小收縮A=reshape(-4:5,2,5) A = -4 -2 0 2 4 -3 -1 1 3 5 A(:,2,4)= A = -4 0 4 -3 1 5 3.5 關(guān)系操作和邏輯操作3.5.1 關(guān)系操作【例3.5-1】關(guān)系運(yùn)算示例。A=1:

20、9,B=10-Ar0=(A<4)r1=(A=B) A = 1 2 3 4 5 6 7 8 9B = 9 8 7 6 5 4 3 2 1r0 = 1 1 1 0 0 0 0 0 0r1 = 0 0 0 0 1 0 0 0 0 【例3.5-2】關(guān)系運(yùn)算應(yīng)用。t=-3*pi:pi/10:3*pi;y=sin(t)./t;tt=t+(t=0)*eps;yy=sin(tt)./tt;subplot(1,2,1),plot(t,y),axis(-9,9,-0.5,1.2),xlabel('t'),ylabel('y'),title('殘缺圖形')sub

21、plot(1,2,2),plot(tt,yy),axis(-9,9,-0.5,1.2)xlabel('tt'),ylabel('yy'),title('正確圖形') Warning: Divide by zero.圖3.5-1 采用近似極限處理前后的圖形對照3.5.2 邏輯操作【例3.5-3】邏輯操作和關(guān)系操作。本例演示:邏輯、關(guān)系操作的組合;xor的作用。 (1)邏輯、關(guān)系操作的組合A=-2,-1,0,0,1,2,3L1=(A>1)%判斷A中,哪些元素不大于1 L2=(A>0)&(A<2)%判斷A中,哪些元素大于0且小

22、于3 A = -2 -1 0 0 1 2 3L1 = 1 1 1 1 1 0 0L2 = 0 0 0 0 1 0 0 (2)xor的作用A,B=0,-1,1,0,1,-2,-3C=xor(A,B)%當(dāng)A, B數(shù)組中,兩個對應(yīng)元素中僅一個為0時,給出1。否則為0。 A = -2 -1 0 0 1 2 3B = 0 -1 1 0 1 -2 -3C = 1 0 1 0 0 0 0 【例3.5-4】試?yán)L制如圖3.5-2最下那幅子圖所示的“正弦波的削頂半波整流波形”,削頂發(fā)生在每個周期的之間。clear,t=linspace(0,3*pi,500);y=sin(t);z1=(t<pi)|(t>

23、;2*pi).*y;w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);wn=w;z2=w*sin(pi/3)+wn.*z1;subplot(4,1,1),plot(t,y,':r'),axis(0,10,-1.5,1.5)ylabel('y'),grid onsubplot(4,1,2),plot(t,z1,':r'),axis(0,10,-0.2,1.5),ylabel('z1')subplot(4,1,3),plot(t,wn,':r'),a

24、xis(0,10,-0.2,1.5),ylabel('wn')subplot(4,1,4),plot(t,z2,'-b'),axis(0,10,-0.2,1.5),ylabel('z2')xlabel('t') 圖 3.5-2 逐段解析函數(shù)的產(chǎn)生3.5.3 常用邏輯函數(shù)習(xí)題31 要求在閉區(qū)間上產(chǎn)生具有10個等距采樣點的一維數(shù)組。試用兩種不同的指令實現(xiàn)。2 由指令rand('state',0),A=rand(3,5)生成二維數(shù)組A,試求該數(shù)組中所有大于0.5的元素的位置,分別求出它們的“全下標(biāo)”和“單下標(biāo)”。答案大于0.5的元素的全下標(biāo)行號 1 3 2 3 3 2 3 1 2列號 1 1 2 2 3 4 4 5 5 大于0.5的元素的單下標(biāo) 1 3 5 6 9

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論