MATLAB簡介.

Slides:



Advertisements
Similar presentations
大綱 1. 三角函數的導函數. 2. 反三角函數的導函數. 3. 對數函數的導函數. 4. 指數函數的導函數.
Advertisements

第一單元 建立java 程式.
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
Matlab教學 Speaker:林昱志 Date:2012/10/18.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
5.1 自然對數函數:微分 5.2 自然對數函數:積分 5.3 反函數 5.4 指數函數:微分與積分 5.5 一般底數的指數函數和應用 5.6 反三角函數:微分 5.7 反三角函數:積分 5.8 雙曲函數.
MATLAB簡介 MATLAB程式設計《入門篇》
Chapter 5 迴圈.
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
MATLAB介紹.
第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。
Visual C++ introduction
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
銳角三角函數的定義 授課老師:郭威廷.
SQL Stored Procedure SQL 預存程序.
Methods of Integration 積分的方法
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
引 言.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Introduction to MATLAB
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
第二次電腦實習課 說明者:吳東陽 2003/10/07.
1.3 矩阵与数组 MATLAB中矩阵的生成 MATLAB矩阵操作 数组创建与运算.
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
第一章 直角坐標系 1-3 函數圖形.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
MATLAB 程式設計入門篇 二維平面繪圖 (part2)
本章學習目標 學習極座標繪圖與對數繪圖 學習雙y軸繪圖 學習向量場繪圖 學習統計繪圖 在Matlab的環境裡製作動畫
Matlab 程式設計 Speaker:靜儀.
MATLAB 入门教程.
数学实验与MATLAB简介  课程的背景和基本要求 MATLAB 使用简介 MATLAB 常用函数介绍 宝石切割问题实验.
课题:已知三角函数值求角 sina tana y P 。 x P’ 。.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
第一章 函数与极限 第一节 函 数 一、函数的概念 二、函数的表示法 三、分段函数 四、反函数 五、初等函数 六、函数的基本性态
期末考.
实验教学 MATLAB在行列式和矩阵中的应用 授课教师:杨梦云.
本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修
撰寫MATLAB基礎財務程式 柯婷瑱.
微積分網路教學課程 應用統計學系 周 章.
挑戰C++程式語言 ──第8章 進一步談字元與字串
第二章 三角函數 2-5 三角函數的圖形.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
如何使用Gene Ontology 網址:
Flash 8:開口中 從Y:\ 複製『開口中.fla』到 D:\ 更改名稱為:s3x99 (你的班號) 雙按開啟檔案 2019年5月7日
微積分 第二次上機 Matlab 教學 2007/10/30 陳逸嬿.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
第二章 三角函數 2-5 三角函數的圖形.
函數應用(二)與自定函數.
1-4 複數與複數平面 複數及其四則運算 複數平面 一元二次方程式的解.
第七章 資料轉換和 個案選擇 7.1 前言 7.2 〝Recode〞功能 7.3 〝Compute〞功能 7.4 〝Count〞功能
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
第7章 MATLAB工程计算.
第一章 直角坐標系 1-3 函數及其圖形.
銳角的三角函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
以下是一元一次方程式的有________________________________。
Unix指令4-文字編輯與程式撰寫.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

MATLAB簡介

開啟MATLAB Workspace 顯示目前工作環境內定義的變數 Command History 紀錄曾經下過的指令 Command Window 我們將它譯為 操作視窗,就如同一個文 字操作介面,有  >>  提示號,在提示號 之後輸入指令 2018/11/15

開啟MATLAB(續) 什麼叫M-file: 若在 Command Window 上面寫程式,按 Enter 後發現寫錯,很難直接修改。 例如把 err = 5e-15改成 err = 1e-10 寫程式最好另外開啟一個檔案,把程式的「原 始碼」寫在裡面,這個檔案我們稱為M-file, 此檔案是純文字檔,而且副檔名必須是 m 。 優點: 1.方便修改。 2.不會因為關閉Matlab 而失去原始碼。 2018/11/15

MATLAB基本數學函數指令 首先 英文字母大小寫是不一樣的喔!!! 常用的函式: 名稱 內容 函式 絕對值a 矩陣各元素取絕對值 abs(a) 根號a 矩陣各元素取根號 sqrt(a) a的b次方 方陣A的b次方 a^b 複數 實部、虛部 c=a+bi complex(a,b) real(c), imag(c) 四捨五入 小數去掉 round(x) fix(x) 2018/11/15

MATLAB基本數學函數指令(續) 常用的函式: 名稱 內容 函式 自然對數e的a次方 矩陣各元素取exp( ) exp(a) 矩陣各元素取log( ) log(a) 10為底 矩陣各元素取log10( ) log10(a) 2為底 矩陣各元素取log2( ) log2(a) 餘數 rem(-7,3)=-1 mod(-7,3)= 2 rem(x,y) mod(x,y) 2018/11/15

MATLAB 複數及三角函數 三角函數 正弦 sin( ) 餘弦 cos( ) 正切 tan( ) 餘切 cot( ) 正割 sec( ) 餘割 csc( ) 反正弦 asin( ) 反餘弦 acos( ) 反正切 atan( ) 反餘切 acot( ) 反正割 asec( ) 反餘割 acsc( ) 2018/11/15

MATLAB關係運算 a大於(小於)b 可表 a>(<)b a不等於b 可表 a~=b a等於b 可表 a=b 2018/11/15

MATLAB邏輯運算 名稱 函式 小於 < 相等 = = 小於等於 <= 大於 > 大於等於 >= 否 是 1 且 是 1 且 & 或 | 非 ~ 2018/11/15

MATLAB矩陣運算 A.是指A矩陣裡的純量同時運算 矩陣 Ex: 3 4 矩陣四則運算: 矩陣的加+,減-,乘 *,次方^都和普通計算一 樣。 A.是指A矩陣裡的純量同時運算 2018/11/15

MATLAB矩陣運算(續) 四則運算 函式 說明 A*B 一般的矩陣運算 A.*B 將相同長度陣列A、B中的元素相乘,結果還是矩陣 A/B 2018/11/15

矩陣的Transpose、Hermitian及矩陣的基本函式 名稱 函式 conjugate transpose A’ 或者 transpose(A) transpose transpose(A) 列數,行數 size(A) rank rank(A) determinant det(A) trace trace(A) inverse inv(A) 2-norm norm(A) 2018/11/15

矩陣的Transpose、Hermitian及矩陣的基本函式 (續) 名稱 函式 1-norm norm(A,1) infinite-norm norm(A,inf) eigenvalue eig(A) singular value svd(A) B:eigenvector C:eigenvalue組成的矩陣 [B,C]=eig(A) B*C*D=A B,D:unitary matrix C:singular value A:m×n B:m×m C:m×n D:n×n [B,C,D]=svd(A) 2018/11/15

矩陣的Transpose、Hermitian及矩陣的基本函式 (續) Ex:(MATLAB) >> A=[1+2i,2+3i;3+4i,4+5i] >> A' ans = 1.0000 - 2.0000i 3.0000 - 4.0000i 2.0000 - 3.0000i 4.0000 - 5.0000i 2018/11/15

製造特殊矩陣--0 與 1 MATLAB提供許多製造特殊矩陣的指令 例如: 名稱 函式 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其餘是0 eye(2,3) 2018/11/15

代表矩陣元素的變數 說明矩陣位址: A(1,1) 代表A的(1,1)位置元素 A(2,:) 代表A的第二列 A(:,3) 代表A的第三行 2018/11/15

冒號(:)指令 1:5 製造了以下序列 1 2 3 4 5 1:2:10製造了以下序列 1 3 5 7 9 1 2 3 4 5 1:2:10製造了以下序列 1 3 5 7 9   x = linspace(a,b,n+1): 產生一個等差序列,序列共有 n+1 項,兩兩 之差為 (b-a)/n,而首項是 a,尾項是 b。 ps:x形成1乘(n+1)矩陣,x(1) = a, x(n+1)=b  2018/11/15

分號(;)指令 如果想要指派數值給一個變數,而不必 看到MATLAB回應變數的值,可以在指 令結束之後寫一個分號 ; 變數名稱 = 變數值 如果只有值而沒有變數名稱則MATLAB 會顯示 ans = 值 2018/11/15

分號(;)指令 (續) 如果想要變數值但是不想要變數名稱就用 disp disp( ) 這就是把一個變數的值印出來的 意思而且不再加“ans=” EX. >>disp(‘aaa’) 是顯示aaa這串句子 >> 'aaa' 是顯示ans= aaa 2018/11/15

逗號(,)指令 a=10,b=100,c=200,和 a=10 b=100 c=200 是一樣的,差別只差在想不想要用一列 敘述就解決程式。 2018/11/15

MATLAB的輸入、輸出 MATLAB在使用數值的輸入和輸出,都 是在Command Window底下做輸入。 輸入(input): EX: >>R = input(‘R=’); %輸入R值 >> k=det(R) 2018/11/15

MATLAB的輸入、輸出(續) 輸出(disp、fprintf): disp( )先前討論過了, 這裡討論fprintf( ) 語法: fprintf('The area is %8.5f\n', area) %8.5f是8位浮點數Fixed-point ,含5位小數 \n是避免下個輸出值和這個輸出值會太接近 EX: fprintf('pi= %12.5f\n',pi) 還有%d, %s等等,可執行help fprintf參閱說 明 2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念 (for迴圈、if運算、while迴圈) break指令: 在下面的for迴圈、if運算、while迴 圈中加入break 它的意思是:從 for迴圈、if運算、 while迴圈中強制脫逃。 for迴圈: 語法: for 變數 = 向量或序列, 計算, end 2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念 (續) Ex: MATLAB: y=1; for x = 1:2:10 % (x=1,3,5,7,9) 只有到9 y=y*x; end y 2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念(續) 注意: 1.我們習慣用 i, j, k, m, n 這些字母 當作迭代的變數。不過,記得 Matlab 認 識複數嗎?其實 i 原本是 sqrt(-1) 的 意思。一旦你說了 for i=1:2:100 這句, 執行之後,i 的值就是 99。因為我們把 1:2:100 這個向量的元素一個一個代入 i, 而最後一個是 99。如果要讓 i 恢復單位 虛數,就說 i = sqrt(-1) 或者 i=complex(0,1)、j 都可以。 2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念(續) 2.sum和prod的應用: 其實如果只是做等差數列相加運算, 可以用sum(1:2:10)=1+3+5+7+9 其實如果只是做等差數列相乘運算, 可以用prod(1:2:10)=1*3*5*7*9 ps:利用MATLAB處理上述兩個運算,用 sum和 prod才是王道 2018/11/15

break指令和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, end 2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念(續) x = 1/7; if (x+x+x+x==1),disp('Bingo'); else,disp('Hee'); end 結果是Hee x = 1/7; if (7*x == 1), disp('Bingo'); else, disp('Hee'); end 結果是Bingo x = 1/3; if (x+x+x == 1), disp('Bingo'); else, disp('Hee'); end x = 1/3; if (3*x == 1), disp('Bingo'); else, disp('Hee'); end 2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念(續) while迴圈: 語法:while CONDITION % CONDITION “通常”是一個邏輯計算 STATEMENTS; end  流程:1.算 CONDITION 2.如果CONDITION的結果是FALSE,則執 行END之後的指令;否則執行STATEMENT 3.執行到END時,回到1.   2018/11/15

break指令和MATLAB的迭代和邏輯分岔概念(續) ※for和while的應用有什麼不同? 既然for迴圈和while迴圈可以互換,那 何必提供兩種語法?原因有二: 1.風格問題 有人喜歡for,有人喜歡 while 2.for迴圈通常用在事先已經確定要執 行幾次的情形,while迴圈通常在一邊 計算一邊看看要不要繼續做的情況。 2018/11/15

繪圖-折線圖plot and axis plot(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) 2018/11/15

繪圖-plot and axis (續) 下面是許多色碼、點的圖案、線碼的表格 色碼 顏色 標點碼 標點 線碼 線名稱 Y 黃色 . 點 - 實線 W 白色 O 圓點 : 虛線 K 黑色 X 叉點 -. 點虛線 R 紅色 + 加號 -- 折線 G 綠色 * 星號 B 藍色 S 方塊 2018/11/15

區間axis(v) v = [v1 v2 v3 v4] 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]); 2018/11/15

設定x-y相同的單位長 當我們製圖的時候,橫軸與縱軸的單位 長未必一樣長,如果要強迫橫軸與縱軸 的單位長相同,下指令 axis('equal')。 MATLAB:(同上題) x = linspace(-pi, pi, 301); plot(x, sin(x),'r'); axis([-4,4,-2,2]); axis('equal') 2018/11/15

設定x-y相同的單位長(續) Ex: 畫單位圓 MATLAB: t = linspace(0, 2*pi, 301); plot(cos(t), sin(t)); axis( 2 * [-1 1 -1 1] ); axis('equal') 2018/11/15

繪製函式圖形( fplot( ) ) 如果想要繪製MATLAB裡內建的函式圖形, 或者已存入work的自定的可繪圖函式, 可以用上述的方式,取很多很多點,利 用折線圖就可以繪製了。 但是其實MATLAB已有內建繪圖的程式, 只需要輸入函式和你要的區間就可以了。 其語法為 fplot('fun',[xmin xmax ymin ymax]) ※ymin ymax 可加可不加  2018/11/15

繪製函式圖形( fplot( ) ) (續) EX: >> fplot('sin(x)./x',[-20 20 -0.4 1.2]) %所有的圖形也可以做圖形標示 >> title('fplot of f(x)=sin(x)/x') >> xlabel('x'), ylabel('f(x)')   >>fplot('x^3-3*x^2+x-3',[0,5,130,0]) 2018/11/15

繪圖--長條圖 bar and axis 若v是n維向量,則bar(v)就畫出高度依序 為 v1, v2 ... vn的長條圖,橫軸為1、 2、…、n。 如果V是一個m乘n矩陣,例如: 則橫軸為1、2、3,縱軸為 、 、…、 的高度 、 屬於第一行,所以在橫軸1的位置 、 屬於第二行,所以在橫軸2的位置 、 屬於第三行,所以在橫軸3的位置 2018/11/15

繪圖--長條圖 bar and axis (續) EX: MATLAB: v=[1 4; 0 -2; 3 5]; bar(v); axis( [ 0.2 6.8 -3 6 ] )   當然,也可以自訂橫軸的數字,利用語 法bar(x,v) (但是x v維度一定要一 樣)  2018/11/15

繪圖--長條圖 bar and axis (續) EX: 如果30~39分有1人,40~49分有4人,60~69分有 2人,70~79分有3人,80~89分有5人,90~99分有 3人,100分有1人 MATLAB: v=[1 4 0 2 3 5 3 1]; x=[35 45 55 65 75 85 95 100]; bar(x,v); axis( [ 30 105 0 6 ] ) title('輔仁數學期中考成績') xlabel('分數') ylabel('人數') 2018/11/15

自訂函式(function) 在M-file裡,完成你要的函式。 然後在程式的最上方,加入以下語法: EX: function n = apple(x) 等號的左邊是要output的數據的變數名稱。 等號的右邊是要input的數據的變數名稱, 輸入參數是從呼叫者 (caller) 那裡傳過 來的。 ※儲存函式,最好將M-file和函式取同樣的 名字,這樣將來比較容易管理。 2018/11/15

自訂函式(function) (續) EX: 現在要自訂一個能解出一元二次方程 式的解的函式: M-file(檔名:fun.m): MATLAB: function y=fun(a,b,c) y(1)=(-b+sqrt(b^2-4*a*c))/2*a; y(2)=(-b-sqrt(b^2-4*a*c))/2*a; 2018/11/15

MATLAB最重要的一節 請學習靈活運用help、lookfor 指令。 EX: help lu lookfor lu ctrl+c (停止搜尋) 2018/11/15