matlab 基本語句
matlab 基本語句
1.迴圈語句for
for i=s1:s3:s2
迴圈語句組
end
解釋:首先給i賦值s1;然後,判斷i是否介於s1與s2之間;如果是,則執行迴圈語句組,i=i+s3(否則,退出迴圈.);執行完畢後,繼續下一次迴圈。
例:求1到100的和,可以程式設計如下:
sum=0
for i=1:1:100
sum=sum+i
end
這個程式也可以用while語句程式設計。
注:for迴圈可以通過break語句結束整個for迴圈.
2.迴圈語句while
例:sum=0;i=1;
while(i<=100)
sum=sum+i;i=i+1;
end
3.if語句
if(條件)
語句
end
if(條件)
語句
else
語句
end
if(條件)
語句
elseif
語句
end
4.關係表示式:
=,>,<,>=,<=,==(精確等於)
5.邏輯表示式:|(或),&(且)
6.[n,m]=size(A)(A為矩陣)
這樣可以得到矩陣A的行和列數
n=length(A),可以得到向量A的分量個數;如果是矩陣,則得到矩陣A的行與列數這兩個數字中的最大值。
7.!後面接Dos命令可以呼叫執行一個dos程式。
8.常見函式:
poly():為求矩陣的特徵多項式的函式,得到的為特徵多項式的各個係數。如a=[1,0,0;0,2,0;0,0,3],則poly(a)=1 -6 11 -6。相當於poly(a)=1入^3+(-6)入^2+11入+(-6)。
compan():可以求矩陣的伴隨矩陣.
sin()等三角函式。
MATLAB在數學建模中的應用(3)
一、程式設計概述
MATLAB所提供的程式設計語言是一種被稱為第四代程式語言的高階程式設計語言,其程式簡潔,可讀性很強,容易除錯。同時,MATLAB的程式設計效率比C/C++語言要高得多。
MATLAB程式設計環境有很多。常用的有:
1. 命令視窗
2. word視窗
3. M-檔案編輯器,這是最好的程式設計環境。
M-檔案的副檔名為“.m”。M-檔案的格式分為兩種:
①l M-指令碼檔案,也可稱為“命令檔案”。
② M-函式檔案。這是matlab程式設計的主流。l
儲存後的檔案可以隨時呼叫。
二、MATLAB程式結構
按照現代程式設計的觀點,任何演算法功能都可以通過三種基本程式結構來實現,這三種結構是:順序結構、選擇結構和迴圈結構。其中順序結構是最基本的結構,它依照語句的自然順序逐條地執行程式的各條語句。如果要根據輸入資料的實際情況進行邏輯判斷,對不同的結果進行不同的處理,可以使用選擇結構。如果需要反覆執行某些程式段落,可以使用迴圈結構。
1 順序結構
順序結構是由兩個程式模組串接構成。一個程式模組是完成一項獨立功能的邏輯單元,它可以是一段程式、一個函式,或者是一條語句。
看圖可知,在順序結構中,這兩個程式模組是順序執行的,即先執行<程式模組1>,然後執行<程式模組2>。
實現順序結構的方法非常簡單,只需將程式語句順序排列即可。
2 選擇結構
在MATLAB中,選擇結構可由兩種語句來實現。
(1) if語句
if語句的最簡單用法為:
if 表示式;
程式模組;
end
if語句的另一種用法為:
if 表示式
程式模組1
else
程式模組2
end
例1 使用if語句判斷學生的成績是否及格。
程式:
clear
n=input(’輸入n= ’)
m=60;
if n<m,
r=’不及格’
else
r=’及格’
end
練習一:將例1寫入M-檔案編輯器,然後在command window 呼叫這個程式。
當針對多個條件進行選擇時,可以採用下面的格式:
if 表示式1
程式模組1
elseif 表示式2
程式模組2
…… ……
elseif 表示式n
程式模組n
else
程式模組n+1
end
例2 將百分之的學生成績轉換為五分制輸出。
程式:
clear
n=input(’輸入n= ’)
if n>=90
chji=’優秀’
elseif n>=80
chji=’良好’
elseif n>=70
chji=’中等’
elseif n>=60
chji=’及格’
else
chji=’不及格’
end
練習二:將例2寫入M-檔案編輯器,然後在command window 呼叫這個程式。
(2) switch語句
switch語句可以替代多分支的if語句,而且switch語句簡潔明瞭,可讀性更好。其格式為:
switch 表示式
case 數值1
程式模組1
case 數值2
程式模組2
……
otherwise
程式模組n
end
其中的otherwise模組可以省略。
switch語句的執行過程是:首先計算表示式的值,然後將其結果與每一個case後面的數值依次進行比較,如果相等,則執行該case的程式模組;如果都不相等,則執行otherwise模組中的語句。如圖3所示。
例3 用switch…case開關結構將百分制的學生成績轉換為五分制的成績輸出。
程式:
clear
x=58
switch fix(x/10)
case {10,9}
y=’優秀’
case 8
y=’良好’
case 7
y=’中等’
case 6
y=’及格’
otherwise
y=’不及格’
end
練習三:將例3寫入M-檔案編輯器,然後在command window 呼叫這個程式。
3 迴圈結構
迴圈結構的流程圖如圖4所示它可以多次重複執行某一組語句。迴圈是計算機解決問題的主要手段。
在MATLAB中,迴圈結構可以由兩種語句結構實現。
(1) for…end 迴圈結構。其格式為:
for i=V,迴圈體結構,end
其中V為一個行向量,迴圈變數i每次從V中取一個數值,執行一次迴圈體的內容,如此下去,直到完成V中的所有分量,就自動結束迴圈體的執行。
例4 計算 s=12+22+52。
程式:
a=[1 2 5 ]; s=0;
for k=a,
s=s+k^2;
end,
s,
該例題只是為了說明for語句的格式,事實上,用下面的語句求和更為簡單。
命令:
p=sum(a.^2)
練習四:建立MATLAB與word的連線,在新建的m-book中寫入上面的程式,並用notebook選單執行之。
迴圈結構裡面還可以包含迴圈結構,形成多重迴圈。
例5 設計一個九九乘法表。
程式:
clear
for i=1:9
for j=1:9
a(i , j)=i*j;
end
end
a,
練習五:①直接在命令窗編寫上面的程式。
②試執行下面的程式,並加以分析:
程式: disp(’ 九九乘法表 ’),for i=1:9,
for j=1:i,p{i}(j)=j*i;end,disp(p{i}),end
(2) while…end 迴圈結構。其格式為:
while (表示式)
迴圈結構體
end
例6 求MATLAB的相對精度
解:解題的思路是,讓y值不斷減小,直到MATLAB分不出1+y與1的差別為止。
程式:
y=1; while 1+y>1; y1=y; y=y/2; end,y1
說明:
①for迴圈與while迴圈的區別是,for語句的迴圈次數是確定的,而while語句的迴圈次數是不確定的。
②一定要注意在迴圈結構體內設定“修改條件表示式的語句”,以免進入“死迴圈”。
③一旦出現死迴圈,在命令窗用ctrl+c可使程式中止。
④注意程式的可讀性。
練習六:在M-檔案編輯器內編寫上面的指令碼檔案,並利用選單或快捷按鈕執行之。
三、M-檔案
M檔案是包含MATLAB程式碼的檔案。M檔案按其內容和功能可分為指令碼M檔案和函式M檔案這兩大類。
1、指令碼M檔案
指令碼M檔案是許多MATLAB程式碼按順序組成的命令集合,不接受引數的輸入和輸出,與MATLAB工作區共享變數空間。指令碼檔案一般用來實現一個相對獨立的功能,比如對某個資料集進行某種分析、繪圖,求解方程等等。
前面的幾個例題都是指令碼檔案的型別。
2、函式M檔案
MATLAB的M-函式是由function語句引導的,其基本格式如下:
function [輸出形參列表] = 函式名 (輸入形參列表)
註釋說明語句段,由%引導;
函式體語句
函式檔案需要在M-檔案編輯器中編寫。寫完以後,按照當前的搜尋路徑儲存。以後就可以隨時呼叫這個函式了。
與指令碼M檔案不同的是,呼叫函式M檔案時需要輸入自變數的實際值。
隨便開啟一個M-檔案看一看:
open lsqlin
程式設計例項
例7. 定義一個函式 f(x)=[sin(x)]2, 其中x以“度”為單位。然後再呼叫該函式。
解:在M-檔案編輯器內寫入下面的檔案:
function y=sinsd(x)
%自變數x以“度”為單位。
%
%白城師院
%數學建模協會,2007-5-12
a=x/180*pi;
y=sin(a).^2;
將上面的檔案儲存之後即可隨時呼叫。
命令:
t=sinsd(45)
t =
0.5000
命令:
help sinsd
命令:
t=sinsd([45,60])
t =
0.5000 0.7500
表明該函式對元素群運算有效。上面的語句相當於
命令:
x=[45,60];t=sinsd(x)
t =
0.5000 0.7500
命令:
x=[45,60;30,90];f=sinsd(x)
f =
0.5000 0.7500
0.2500 1.0000
將原始檔中最後一行的“.”去掉,再執行以上兩條命令,我們會發現什麼?
例8. 在MATLAB中,一個函式可以呼叫其它函式,也可以呼叫自身,即遞迴呼叫。下面利用遞迴演算法編寫一個函式,用來計算Fibonacci數列的第k項。
Fibonacci數列:
1,1,2,3,5,8,13,21,……
M-函式檔案:
function a=my_fibo(k)
if k==1|k==2,a=1;
else,a=my_fibo(k-1)+my_fibo(k-2);end
將這個檔案寫入M-檔案編輯器並以名稱“my_fibo.m”儲存,以後就可以呼叫這個函式。
遞迴演算法無疑是解決某一類問題的有效方法,但不宜濫用,因為它的運算速度往往很慢。
命令:
tic, n= my_fibo(26) ,toc
n =
121393
elapsed_time =
34.4290
下面我們嘗試用一般的迴圈語句來求解這個問題。
程式:
tic,n=[1,1];for k=3:100,n(k)=n(k-1)+n(k-2);end,toc,
elapsed_time =
0.0100
命令:
n(1:26)
ans =
Columns 1 through 8
1 1 2 3 5 8 13 21
Columns 9 through 16
34 55 89 144 233 377 610 987
Columns 17 through 24
1597 2584 4181 6765 10946 17711 28657 46368
Columns 25 through 26
75025 121393
例9. 可變輸入變數個數的函式
MATLAB提供的conv( )函式可用來求兩個多項式的乘積。對於多個多項式的連乘,則不能直接使用此函式,需要用該函式巢狀使用,用起來很不方便。下面編寫一個MATLAB函式,使它能直接處理任意多個多項式的乘積問題。
M-函式檔案:
function a=convs(varargin)
a=1;
for i=1:length(varargin)
相關文章
- Matlab常用語句Matlab
- SQL基本語句SQL
- Matlab的if語句switch語句for迴圈while迴圈語句練習MatlabWhile
- Oracle基本SQL語句OracleSQL
- Oracle Dataguard基本操作語句Oracle
- 常用的oracle基本語句Oracle
- orcale 語句基本語法縮寫
- MySQL基本操作語句小結MySql
- MySQL基本sql語句總結MySql
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-基本迴圈(EXIT語句)SQL
- 【自制程式語言】1 - 基本語句(1)
- Sql Server系列:Select基本語句SQLServer
- SGA區查詢的基本語句
- 必知必會——SQL語句基本語法整理SQL
- 6.3. 基本SQL語句——6.3.1. DDLSQL
- 6.3. 基本SQL語句——6.3.2. DMLSQL
- 6.3. 基本SQL語句——6.3.3. DCLSQL
- Python 入門 :基本條件語句Python
- DB2 用到的基本SQL語句DB2SQL
- Linux-MySQL基本命令-SQL語句LinuxMySql
- mysql 資料增刪改查基本語句MySql
- 【sql】編寫基本的SQL SELECT語句四SQL
- 【sql】編寫基本的SQL SELECT語句三SQL
- 【sql】編寫基本的SQL SELECT語句一SQL
- oracle資料庫巡檢(一)基本sql語句Oracle資料庫SQL
- 6. Oracle開發和應用—6.3. 基本SQL語句—6.3.4. select語句OracleSQL
- MySQL查詢語句過程和EXPLAIN語句的基本概念及其最佳化MySqlAI
- flask之控制語句 if 語句與for語句Flask
- MATLAB的基本元素Matlab
- [Sqlite] Sqlite的基本日常SQL操作語句彙總SQLite
- oracle查詢語句大全oracle基本命令大全一Oracle
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(迴圈語句、while語句、for語句)JavaWhile
- Linux基礎知識和基本操作語句總結Linux
- SQL Server SQL語句進行優化的基本原則SQLServer優化
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(選擇語句、if-else語句、switch語句)Java
- if語句
- MATLAB常用基本數學函式Matlab函式
- 【全面】Linux基礎知識和基本操作語句大全(一)Linux