導航:首頁 > 編程語言 > matlab簡單編程

matlab簡單編程

發布時間:2023-05-25 00:36:07

❶ matlab編程

計算機程序就是計算機指令的集合,不同的編程語言指令與功能是不一樣的.MATLAB語言是一種面向對象的高級語言,它具有編程效率高、易學易用的優點.
MATLAB與其它大部分高級語言一樣,有它自己的控制流語句.控制流極其重要,因為它使過去的計算影響將來的運算。MATLAB提供如下幾種控制流結構:For循環,While循環,If-Else-End結構和switch-case-end結構。由於這些結構經常包含大量的MATLAB命令,故經常出現在M文件中.MATLAB支持的控制流語句和C語言支持的控制流語句在調用格式上非常相似.
1.For 循環
For循環允許一條語句或一組語句被重復執行預先指定的次數。For循環的一般形式是:
for x =array
語句
end
在for和end語句之間的語句按數組中的每一列執行一次。在每一次迭代中,x被指定為數組的下一列,即在第n次循環中,x=array(:, n)。例如,
for n=1:10
x(n)=sin(n*pi/10);
end
x
x =
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
換句話,第一語句是說:對n等於1到10,執行所有語句,直至下一個end語句。第一次通過For循環n=1,第二次,n=2,如此繼續,直至n=10。在n=10以後,For循環結束,然後執行end語句後面的任何命令.注意,該循環結束後,n=10.
For循環的其它重要方面是:
(1)For循環不能用For循環內重新賦值循環變數n來終止。
For n=1:10
x(n)=sin(n*pi/10);
n=9;
end
x
x =
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
n
n=
9
執行過程是這樣的:
n=1,
x(1)=sin(pi/10),
n=9,
n=2,
x(2)=sin(2*pi/10),
n=9,
n=3,
...,
n=10,
x(10)=sin(10*pi/10),
n=9.
循環結束後,n=9.
(2)在For循環內接受任何有效的MATLAB數組。
data=[3 9 45 6; 7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
for n=data
x=n(1)-n(2)
end
x =
-4
x =
-7
x =
46
x =
1
(3)For循環可按需要嵌套。
For n=1:5
for m=1:5
A(n,m)=n^2+m^2;
end
disp(n)
end
1
2
3
4
5
A
A =
2 5 10 17 26
5 8 13 20 29
10 13 18 25 34
17 20 25 32 41
26 29 34 41 50
(4)當有一個等效的數組方法來解給定的問題時,應避免用For循環。例如,上面的第一個例子可被重寫為
n=1:10;
x=sin(n*pi/10)
x =
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
兩種方法得出同樣的結果,而後者執行更快,更直觀,要求較少的輸入。
(5)為了得到最大的速度,在For循環(While循環)被執行之前,應預先分配數組。例如,前面所考慮的第一種情況,在For循環內每執行一次命令,變數x的大小增加1。迫使MATLAB每通過一次循環要花費時間對x分配更多的內存。為了消去這個步驟,For循環的例子應重寫為
x=zeros(1,10);
for n=1:10
x(n)=sin(n*pi/10);
end
現在,只有x(n)的值需要改變。
例1 相傳古代印度國王要褒獎他的聰明能乾的宰相達依爾(國際象棋發明者),問他要什麼?達依爾回答:「陛下只要在國際象棋棋盤的第一個格子上放一粒麥子,第二個格子上放二粒麥子,以後每個格子的麥子數都按前一格的兩倍計算。如果陛下按此法給我64格的麥子,就感激不盡,其他什麼也不要了。」國王想:「這還不容易!」讓人扛了一袋麥子,但很快用光了,再扛出一袋還不夠,請你為國王算一下共要給達依爾多少小麥?(1 小麥約 顆)
解: 麥粒總數為

程序如下:
a=1;
s=0
for i=1:64
s=s+a;
a=2*a;
end
s=s/1.4/10^8
運行後得:
s=
1.3176e+011
例2 公元前五世紀我國古代數學家張丘建在《算經》一書中提出了「百雞問題」:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、母、雛各幾何?
解 設 x:雞翁數,則x的范圍:0~19
y:雞母數,則y的范圍:0~33
z:雞雛數,則z的范圍:0~100
則:
x+y+z=100
5x+3y+z/3=100
這是一個不定方程。
for x=0:19
for y=0:33
for z=0:100
if (x+y+z==100)&(5*x+3*y+z/3==100)
d=[x,y,z]
end
end
end
end
運行後得結果:
d =
0 25 75
d =
4 18 78
d =
8 11 81
d =
12 4 84

2.While 循環
與For循環以固定次數求一組命令的值相反,While 循環以不定的次數重復執行一組語句。While循環的一般形式是:
while 表達式1
語句1
end
只要表達式1里的所有元素為真,就執行while和end之間的語句1,否則,就結束循環。通常,表達式的值給出一個標量值,但數組值也同樣有效。在數組情況下,當數組的所有元素為真(值不等零)時,就執行語句1,數組中有一個元素為假(值為零),就結束循環。
例3按下面的公式計算:

使誤差小於給定的 .
解: 把 作為誤差,程序如下:
error=input('請輸入誤差:');
x=1;
y=0;
n=1;
while x>error
y=y+1;
x=x/n;
n=n+1;
end
e=y
運行如下:
請輸入誤差:0.001
e =
2.7181
3.IF-ELSE-END 結構
很多情況下,命令的序列必須根據關系的檢驗有條件地執行。在編程語言里,這種邏輯由某種If-Else-End結構來提供。最簡單的If-Else-End結構是:
if 表達式1
語句1
end
如果在表達式1中的所有元素為真(非零),那麼就執行if和end語言之間的語句1。
假如有兩個選擇,If-Else-End結構是:
if 表達式1
語句1
else
語句2
end
在這里,如果表達式1為真,則執行語句1;如果表達式是假,則執行語句2。
當有三個或更多的選擇時,If-Else-End結構採用形式
if 表達式1
語句1
elseif 表達式2
語句2
elseif 表達式3
語句3
elseif 表達式4
語句4
elseif ……



else
語句
end
如果表達式1為真,則執行語句1,結束循環;如果表達式1為假,則檢驗表達式2,如果表達式2為真,則執行語句2,結束循環;如果表達式2為假,則檢驗表達式3,如此下去,如果所有表達式都為假時,則執行最後的語句。即只執行第一個真值表達式相關的語句;接下來的表達式不檢驗,跳過其餘的If-Else-End結構。而且,最後的else命令可有可無。
4.switch-case-end結構
如果在一個程序中,必須針對某個變數不同取值情況進行相應操作,switch語句比if else語句更方便。switch語句的一般形式為:
switch 分支條件(數值或字元串)
case 數值(或字元串)條件1
語句1
case 數值(或字元串)條件2
語句2
case 數值(或字元串)條件3
語句3
case ...
...
otherwise
語句
end
其中分支條件可以是一個函數、變數或者表達式.如果條件1與分支條件匹配就執行語句1,退出循環;否則,檢驗條件2,如果條件2與分支條件匹配執行語句2,退出循環;否則,檢驗條件3,...,當所有條件都不與分支條件匹配時就執行最後的語句。注意otherwise是可以省略的。
例4 在圖形界面上放置一個彈出式菜,點擊彈出式菜單可以設置曲線顏色。
解:程序如下:
x=linspace(-6,6,50);
y=sin(x);
h=plot(x,y,'linewidth',4);
h0=uicontrol('position',[600,500,100,30],...
'style','popupmenu',...
'string','紅色|藍色|黃色|黑色|青色',...
'callback',...
['v=get(h0,''value'');',...
'switch v;',...
'case 1;',...
'set(h,''color'',''r'');',...
'case 2;',...
'set(h,''color'',''b'');',...
'case 3;',...
'set(h,''color'',''y'');',...
'case 4;',...
'set(h,''color'',''k'');',...
'case 5;',...
'set(h,''color'',''c'');',...
'end;']);

❷ matlab的程序應該怎麼寫

1、matlab是一個功能強大的軟體,不僅僅在數據處理方面很優秀,在界面編程方面同樣優秀,這里簡單介紹下matlab界面編程的基礎步驟。

2、在打開的matlab程序中,點擊new---graphic user interface,打開創建gui向導--我們選擇blank gui,創建空白的gui界面---選擇左側我們需要的控制項,如下圖,我們選擇一個button---將控制項拖入到gui界面的合適的位置,雙擊打開設置屬性的界面---設計好界面後,我們先不要編寫函數內容,先運行界面---他會提醒我們激活界面將保存界面和代碼,我們選擇yes---輸入文件名,點擊保存---我們回到界面編輯界面,點擊button右鍵打開右鍵菜單,點擊view callbacks---callback,來跳轉到該控制項的回調函數---我們在該函數中輸入代碼---這時,我們運行程序,點擊按鈕,即可以在命令窗口中看到button執行的效果。

3、先運行界面,使得matlab給我們創建界面的代碼,然後在view callback。

❸ matlab編程入門需要怎麼做

入門需要做下面幾個方面事:

1、M語言編程。這是所有Matlab操作的基礎,Matlab的所有功能都是通過M語言來實現的。M語言是一種簡單的腳本語言,學習M語言,要學會基本的語句,還要能夠掌握基本的文件IO,GUI開發,數據導入,矩陣操作等等。

2、科學計算。科學計算是matlab最為強大的功能之一,這一部分的學習實質上是對大學數學的一個復習。你得復習微分方程的建立,積分求導的法則,線性代數的基本理論。復習完這些知識,再來進行各種計算。

3、機器學習。Matlab內置了豐富的機器學習庫最新版的matlab甚至支持深度學習以及GPU運算,只需要一些簡單的M語言編程就能快速搭建起來一個網路。

4、模擬模擬。能夠進行模擬模擬也是Matlab的一大特色功能,在科學領域,小到原子運行,大到宇宙爆炸,沒有他不能勝任的;在工程領域,電磁場模擬,機械結構評估,水利電力模擬,Matlab幾乎無所不能。

注意事項:

1、我們必須下載好一個matlab版本,一般來說新版的話,它的內置命令函數簡化,操作容易上手快,對基礎知識的儲備也不是很多。

2、這款軟體需要一定的數學知識,最為重要的是懂些矩陣和線性代數的知識,為了更好的更直觀地表達數據的可視化。

3、後面我們自己可以找一本有關matlab的書籍教材,網上資料很多,找一本然後按照上面的例子上手matlab。

4、最後,我們再根據具體的工程、項目的需求來驗證我們的matlab知識。

❹ MATLAB 簡單編程 求各位大神幫忙

1.建坦則立函數文件ff.m,內容為:
function y=ff(x)
y=1;
for i=1:x
y=y*i;
end
計戚信伏算高攜是在commend window中輸入:
y=0;
for x=1:20
y=y+ff(x);
end
y

2.for x=100:999
if mod(x,11)==0
x
else
continue
end
end

❺ Matlab編程

60個同學抽60個題目且題號各不相同,用matlab實現,需要使用matlab的randperm函數,代碼如下:

截圖效果2

tihao=randperm(60);xuehao=1:60;for i=xuehao;disp(sprintf('學號為%d的同學,恭喜你,抽中第%d題 ',i,tihao(i)));end;

閱讀全文

與matlab簡單編程相關的資料

熱點內容
臟數據java 瀏覽:290
游戲解壓怎麼設置 瀏覽:782
會聲會影如何壓縮視頻 瀏覽:57
閱讀app小說怎麼轉換成txt 瀏覽:65
c語言編程數字變時間 瀏覽:655
迷你編程第五天初級寶箱怎麼弄 瀏覽:839
刺激體驗服如何更新伺服器 瀏覽:934
怎麼把照片做成新的文件夾 瀏覽:466
安卓手機沒有聲音均衡器怎麼辦 瀏覽:506
吃雞國際服為什麼會伺服器匆忙 瀏覽:248
微信中如何打開定位伺服器 瀏覽:203
java並發編程書籍 瀏覽:280
android601源碼 瀏覽:788
程序員離職了還能幹嘛 瀏覽:156
少林功法pdf 瀏覽:471
安卓80版本小游戲怎麼玩 瀏覽:632
奇書pdf 瀏覽:836
伺服器的管理口有什麼用 瀏覽:643
澳洲加密資產新政策 瀏覽:157
哈利波特連接伺服器失敗什麼意思 瀏覽:234