matlab的程式設計例項解析

2022-12-30 15:06:02 字數 2610 閱讀 4756

matlab程式設計方法及若干程式例項

樊双喜(河南大學數學與資訊科學學院開封475004)

摘要本文通過對 matlab 程式設計中的若干典型問題做簡要的分析和總結,並

在此基礎上著重討論了有關演算法設計、程式的除錯與測試、演算法與程式的優化以

及迴圈控制等方面的問題.還通過對一些程式例項做具體解析,來方便讀者進行

程式設計訓練並掌握一些有關 matlab 程式設計方面的基本概念、基本方法以及某些

問題的處理技巧等.此外,在文章的最後還給出了幾個常用數學方法的演算法程式,

供讀者參考使用.希望能對初學者進行 matlab 程式設計訓練提供一些可供參考的材

料,並起到一定的指導和激勵作用,進而為matlab程式設計入門打下好的基礎.

關鍵字演算法設計;程式除錯與測試;程式優化;迴圈控制

1 演算法與程式

1.1 演算法與程式的關係

演算法被稱為程式的靈魂,因此在介紹程式之前應先了解什麼是演算法.所謂算

法就是對特定問題求解步驟的一種描述.對於乙個較複雜的計算或是資料處理的

問題,通常是先設計出在理論上可行的演算法,即程式的操作步驟,然後再按照演算法

逐步翻譯成相應的程式語言,即計算機可識別的語言.

所謂程式設計,就是使用在計算機上可執行的程式**來有效的描述用於

解決特定問題演算法的過程.簡單來說,程式就是指令的集合.結構化程式設計由於

採用了模組分化與功能分解,自頂向下,即分而治之的方法,因而可將乙個較複雜

的問題分解為若干子問題,逐步求精.演算法是操作的過程,而程式結構和程式流程

則是演算法的具體體現.

1.2 matlab語言的特點

matlab 語言簡潔緊湊,使用方便靈活,庫函式極其豐富,其語法規則與科技

人員的思維和書寫習慣相近,便於操作.matlab 程式書寫形式自由,利用其豐富

的庫函式避開繁雜的子程式程式設計任務,壓縮了很多不必要的程式設計工作.另外,它的

語法限制不嚴格,程式設計自由度大.其最大的特點是以矩陣運算為最強,而數值

的矩陣化又為運算和處理提供了方便.除此之外,matlab 還有著非常強大的繪圖

功能.1.3 matlab程式設計練習

matlab 有著豐富的庫函式 ,一般情況下應了解並學會使用一些常用的庫函

數,至少應熟悉函式庫中都有哪些常用函式,當需要時可以現學現用.或者能對一

些經典函式做一定的改造,以達到解決某一特定問題的目的.但,在大多情況下還

需要自己編寫程式去處理形形色色的問題.下面就先從一些較簡單的程式入手來

熟悉matlab的程式設計方式.

例1 乙個分類統計函式的設計(分類統計_1)

編寫乙個函式,統計出一組有序(按公升序或降序排列)數字中每種數字的個

數,並返回數字種類數.

分析:設待統計陣列為x,因為x有序,所以在設計演算法時應抓住這個特點.

若用 s1 記錄已統計出的數字,則,在對 x 中的數字進行遍歷時,每次只需讓 x(i)

與 s1 中的最後乙個數字進行比較就可以了,若相等,則對應計數器加 1,若不等,

則說明測到新數,應開闢新的儲存單元.其演算法程式如下:

function [s,k]=fltj_1(x)

%x為待統計的一組有序數,返回值s為2列的陣列, 第一列為不同種類的數字

%第二列為對應數字的個數, k記錄統計出的數字種類數目

n=length(x);

s1=x(1);

s2=1;

% s1記錄測到的新數字,給其賦初值為x的第乙個數字

% s2記錄s1中每個數字的個數,賦初值為x(1)的初始個數1

% k記錄已統計出的數字種類數,初值賦為1

k=1;

for i=2:n % 從第2項開始遍歷陣列x

if x(i)==s1(k)

% 如果x(i)與已測出的最後1個數字相同,

s2(k)=s2(k)+1; % 則對應的計數器加1

else

% 否則,則說明測到新數字

k=k+1;

% k值加1

s1=[s1;x(i)]; % 將此新數併入s1,

s2=[s2;1]; %對應的計數器為1

endend

s=[s1,s2];

% 將s1與s2拼接成乙個兩列的陣列s

程式執行如下(「」代表回車,下同.)

>> x=[1,2,2,3,3,4,5,5];

>> [s,k]=fltj_1(x)

s =123

4512

212k =

5例2 乙個數字遊戲的設計

有這樣乙個數字遊戲:在乙個 20×10 的矩陣中,0~99 這 100 個數順序排列

在奇數列中(每20個數組成一列),另有100個圖案排列在偶數列中,這樣每個

數字右邊就對應乙個圖案.你任意想乙個兩位數a,再讓a減去它的個位數字與十

位數字之和得到乙個數b,然後,在上述矩陣的奇數列中找到b,將b右邊的圖案記

在心裡,最後點選指定的按鈕,你心裡的那個圖案將被顯示.

下面我們就來編寫程式模擬一下這個小遊戲,以[0,1]之間的小數代替矩陣

中的圖案,由matlab程式實現如下:

程式i% 「測心術」遊戲

format short

a=1;t=0;

Matlab簡單例項學習

matlab程式 繪製 e sin sqrtt altimg w 250 h 54 的函式圖象fv clear t 0 0.02 10 f1 10 sqrt 7.75 exp 1.5 t f2 sin sqrt 7.75 t y f1.f2 plot t,y,k t,y,ok xlabel t yl...

MATLAB程式設計實踐2019

一 實踐目標 回顧複習 科學計算與matlab 課程內容和基本程式設計方法 程式設計實現某一科學計算的演算法,並舉一例應用之和利用matlab自帶函式實現之 程式設計解決科學計算和工程實際問題。二 實踐內容 1.matlab基礎部分內容 完成乙個從檔案 data.txt 中讀取資料,然後做出相關的圖...

MATLAB程式設計01規劃問題

matlab語言應用 最優化 第二章0 1規劃 matlab的0 1規劃函式bintprog是針對下述0 1規劃 2.1 解0 1規劃 2.1 的0 1規劃函式bintprog表述為 x,fv,exitflag,output bintprog f,a,b,aeq,beq2.2 輸入部分 f為目標函式...