您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 显示目前工作环境内定义的变数
MATLAB簡介開啟MATLABWorkspace顯示目前工作環境內定義的變數CommandHistory紀錄曾經下過的指令CommandWindow我們將它譯為操作視窗,就如同一個文字操作介面,有提示號,在提示號之後輸入指令2019/9/14開啟MATLAB(續)什麼叫M-file:若在CommandWindow上面寫程式,按Enter後發現寫錯,很難直接修改。例如把err=5e-15改成err=1e-10寫程式最好另外開啟一個檔案,把程式的「原始碼」寫在裡面,這個檔案我們稱為M-file,此檔案是純文字檔,而且副檔名必須是m。優點:1.方便修改。2.不會因為關閉Matlab而失去原始碼。2019/9/14MATLAB基本數學函數指令首先英文字母大小寫是不一樣的喔!!!常用的函式:名稱內容函式絕對值a矩陣各元素取絕對值abs(a)根號a矩陣各元素取根號sqrt(a)a的b次方方陣A的b次方a^b複數實部、虛部c=a+bicomplex(a,b)real(c),imag(c)四捨五入小數去掉round(x)fix(x)2019/9/14MATLAB基本數學函數指令(續)常用的函式:名稱內容函式自然對數e的a次方矩陣各元素取exp()exp(a)自然對數e為底矩陣各元素取log()log(a)10為底矩陣各元素取log10()log10(a)2為底矩陣各元素取log2()log2(a)餘數rem(-7,3)=-1mod(-7,3)=2rem(x,y)mod(x,y)2019/9/14MATLAB複數及三角函數三角函數正弦sin()餘弦cos()正切tan()餘切cot()正割sec()餘割csc()反正弦asin()反餘弦acos()反正切atan()反餘切acot()反正割asec()反餘割acsc()2019/9/14MATLAB關係運算a大於(小於)b可表a()ba不等於b可表a~=ba等於b可表a=b2019/9/14MATLAB邏輯運算名稱函式小於相等==小於等於=大於大於等於=否0是1且&或|非~2019/9/14MATLAB矩陣運算矩陣Ex:A=[1,2;3,4](逗號也可以用空白代替)A=1234矩陣四則運算:矩陣的加+,減-,乘*,次方^都和普通計算一樣。A.是指A矩陣裡的純量同時運算2019/9/14MATLAB矩陣運算(續)四則運算函式說明A*B一般的矩陣運算A.*B將相同長度陣列A、B中的元素相乘,結果還是矩陣A/BA與B的反矩陣相乘,亦即AB-1A\BA的反矩陣與B相乘,亦即A-1BA./BA的元素與B的元素相除A.\BB的元素與A的元素相除2019/9/14矩陣的Transpose、Hermitian及矩陣的基本函式名稱函式conjugatetransposeA’或者transpose(A)transposetranspose(A)列數,行數size(A)rankrank(A)determinantdet(A)tracetrace(A)inverseinv(A)2-normnorm(A)2019/9/14矩陣的Transpose、Hermitian及矩陣的基本函式(續)名稱函式1-normnorm(A,1)infinite-normnorm(A,inf)eigenvalueeig(A)singularvaluesvd(A)B:eigenvectorC:eigenvalue組成的矩陣[B,C]=eig(A)B*C*D=AB,D:unitarymatrixC:singularvalueA:m×nB:m×mC:m×nD:n×n[B,C,D]=svd(A)2019/9/14矩陣的Transpose、Hermitian及矩陣的基本函式(續)Ex:(MATLAB)A=[1+2i,2+3i;3+4i,4+5i]A'ans=1.0000-2.0000i3.0000-4.0000i2.0000-3.0000i4.0000-5.0000i2019/9/14製造特殊矩陣--0與1MATLAB提供許多製造特殊矩陣的指令例如:名稱函式2乘3的零矩陣zeros(2,3)元素都是1的2乘3的矩陣ones(2,3)3乘3的零方陣zeros(3)元素都是1的3乘3的方陣ones(3)3乘3的單位方陣eye(3)2乘3的矩陣對角線是1其餘是0eye(2,3)2019/9/14代表矩陣元素的變數說明矩陣位址:A(1,1)代表A的(1,1)位置元素A(2,:)代表A的第二列A(:,3)代表A的第三行A(1,1:3)代表A的第一列之第一行到第三行2019/9/14冒號(:)指令1:5製造了以下序列123451:2:10製造了以下序列13579x=linspace(a,b,n+1):產生一個等差序列,序列共有n+1項,兩兩之差為(b-a)/n,而首項是a,尾項是b。ps:x形成1乘(n+1)矩陣,x(1)=a,x(n+1)=b2019/9/14分號(;)指令如果想要指派數值給一個變數,而不必看到MATLAB回應變數的值,可以在指令結束之後寫一個分號;如果沒放;則MATLAB會顯示變數名稱=變數值如果只有值而沒有變數名稱則MATLAB會顯示ans=值2019/9/14分號(;)指令(續)如果想要變數值但是不想要變數名稱就用dispdisp()這就是把一個變數的值印出來的意思而且不再加“ans=”EX.disp(‘aaa’)是顯示aaa這串句子'aaa'是顯示ans=aaa2019/9/14逗號(,)指令a=10,b=100,c=200,和a=10b=100c=200是一樣的,差別只差在想不想要用一列敘述就解決程式。2019/9/14MATLAB的輸入、輸出MATLAB在使用數值的輸入和輸出,都是在CommandWindow底下做輸入。輸入(input):EX:R=input(‘R=’);%輸入R值k=det(R)2019/9/14MATLAB的輸入、輸出(續)輸出(disp、fprintf):disp()先前討論過了,這裡討論fprintf()語法:fprintf('Theareais%8.5f\n',area)%8.5f是8位浮點數Fixed-point,含5位小數\n是避免下個輸出值和這個輸出值會太接近EX:fprintf('pi=%12.5f\n',pi)還有%d,%s等等,可執行helpfprintf參閱說明2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(for迴圈、if運算、while迴圈)break指令:在下面的for迴圈、if運算、while迴圈中加入break它的意思是:從for迴圈、if運算、while迴圈中強制脫逃。for迴圈:語法:for變數=向量或序列,計算,end2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)Ex:MATLAB:y=1;forx=1:2:10%(x=1,3,5,7,9)只有到9y=y*x;endy2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)注意:1.我們習慣用i,j,k,m,n這些字母當作迭代的變數。不過,記得Matlab認識複數嗎?其實i原本是sqrt(-1)的意思。一旦你說了fori=1:2:100這句,執行之後,i的值就是99。因為我們把1:2:100這個向量的元素一個一個代入i,而最後一個是99。如果要讓i恢復單位虛數,就說i=sqrt(-1)或者i=complex(0,1)、j都可以。2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)2.sum和prod的應用:其實如果只是做等差數列相加運算,可以用sum(1:2:10)=1+3+5+7+9其實如果只是做等差數列相乘運算,可以用prod(1:2:10)=1*3*5*7*9ps:利用MATLAB處理上述兩個運算,用sum和prod才是王道2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)if運算:語法1:if(True_or_False),計算,end語法2;if(True_or_False),計算A,else,計算B,end語法3:if(True_or_False),計算A,elseif(True_or_False),計算B,else,計算C,end2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)MATLAB:x=1/7;if(x+x+x+x==1),disp('Bingo');else,disp('Hee');end結果是Heex=1/7;if(7*x==1),disp('Bingo');else,disp('Hee');end結果是Bingox=1/3;if(x+x+x==1),disp('Bingo');else,disp('Hee');end結果是Bingox=1/3;if(3*x==1),disp('Bingo');else,disp('Hee');end結果是Bingo2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)while迴圈:語法:whileCONDITION%CONDITION“通常”是一個邏輯計算STATEMENTS;end流程:1.算CONDITION2.如果CONDITION的結果是FALSE,則執行END之後的指令;否則執行STATEMENT3.執行到END時,回到1.2019/9/14break指令和MATLAB的迭代和邏輯分岔概念(續)※for和while的應用有什麼不同?既然for迴圈和while迴圈可以互換,那何必提供兩種語法?原因有二:1.風格問題有人喜歡for,有人喜歡while2.for迴圈通常用在事先已經確定要執行幾次的情形,while迴圈通常在一邊計算一邊看看要不要繼續做的情況。2019/9/14繪圖-折線圖plotandaxisplot(x,y)的意思就是在平面座標上從(x1,y1)這一點畫一條直線去(x2,y2),從(x2,y2)這一點畫一條直線去(x3,y3),...從(xn-1,yn-1)這一點畫一條直線去(xn,yn)。線的顏色:plot(x,y)內建的是黑線,如果要限定顏色plot(x,y,'r')則是紅線,'g'表示綠色(green)'b'表示藍色(blue)2019/9/14繪圖-plotandaxis(續)下面是許多色碼、點的圖案、線碼的表格色碼顏色標點碼標點線碼線名稱Y黃色.點-實線W白色O圓點:虛線K黑色X叉點-.點虛線R紅色+加號--折線G綠色*星號B藍色S方塊2019/9/14區間axis(v)v=[v1v2v3v4]axis(v),橫軸v1與v2間,縱軸v3與v4間,呈現圖形。Ex:將-pi到pi分成300同等分的點,對應y=sin(x)的值畫在橫軸-4~4,縱軸-2~2的平面座標系上MATLAB:x=linspace(-pi,pi,301);plot(x,sin(x));axis([-4,4,-2,2]);2019/9/14設定x-y相同的單位長當我們製圖的時候,橫軸與縱軸的單位長未必一樣長,如果要強迫橫軸與縱軸的單位長相同,下指令axis('equal')。MATLAB:(同上題)x=linspace(-pi,pi,301);plot(x,sin(x),'r');axis([-4,4,-2,2]);axis('equal')2019/9/14設定x-y相同的單位長(續)Ex:畫單位圓MATLAB:t=linspace(0,2*pi,301);plot(cos(t),sin(t));axis(2*[-11-11]);axis('equal')2019/9/14繪製函式圖形(fplot())如果想要繪製MATLAB裡內建的函式圖形,或者已存入work的自定的可繪圖函式,可以用上述的方式,取很多很多點,利用折線圖就可以繪製了。但是其實M
本文标题:显示目前工作环境内定义的变数
链接地址:https://www.777doc.com/doc-917339 .html