matlab程式設計基礎

2021-09-26 13:29:36 字數 4228 閱讀 6203

ch06 程式設計基礎

6.1 m 檔案

6.1.1 m 函式

1. 基本語法

function [結果] = 函式名(輸入變數)

處理變數

endfunction [a, c] = ac(r)

% 功能:

a = pi*r*r;

%c = pi*r;      % 邏輯錯誤

%c = 2*pi*r;    % 語法錯誤 

c = 2*pi*r;

end2. 兩個內建變數

nargin 和 nargout

function [z1 z2] = compute(x, y, r)

% 功能:計算 x+ry -> z1 和 x-ry -> z2, r 預設為 1

if nargin == 2

r = 1;

elseif nargin < 2

return;

endif nargout <= 1

z1 = [x+r*y x-r*y];

else

z1 = x+r*y;

z2 = x-r*y;

endend

3. 定義數學函式

function z = fun(x, y)

% z = f(x, y) = x^2 - 2y^2

z = x.^2 - 2*y.^2;

end4. 兩種定義數學函式的簡單方法

(1) 匿名函式法 @

>> y1 = @(x)x.^2 - 5*x + 1

y1 = 

@(x)x.^2-5*x+1

>> y1(2)

ans =

-5>> y0 = @(x,y)x.^2 - 2*y.^2

y0 = 

@(x,y)x.^2-2*y.^2

>> y0(1,2)

ans =

-7    

(2) 內聯函式法

>> y3 = inline('x.^2 - 5*x + 1')

y3 =

inline function:

y3(x) = x.^2 - 5*x + 1

6.1.2 m 指令碼

6.2 控制語句

6.2.1 基本控制語句

1. 分支語句

if-end

if-else-end

if-elseif-else-end

switch-case

2. 迴圈語句

for     % 當迴圈次數已知時

while    % 常用於迴圈次數不確定時

6.2.2 其他語句

1. input 輸入語句

input('提示字串')

2. disp (display) 輸出語句 與 帶格式化的 fprintf 輸出語句

3. warning 和 error

4. break 和 continue

語句1for i = 1 : 10

語句2if 條件

% break  % 一旦被執行,則跳出 for 迴圈,執行語句4

continue % 一旦被執行,則語句3不再執行,執行語句2

end語句3

end語句4

5. pause 和 pause(n) 暫停

6. return 語句

7. try-catch 異常捕獲語句

ch07 繪圖

7.1 二維圖形的繪製

7.1.1 基本繪製方法

1. plot 函式繪圖

(1) plot(y): y 是向量,或者矩陣(每個列向量對應一條曲線)

(2) plot(x1, y1, x2, y2, ... , xn, yn)

(3) plot(x1, y1, linespec1, ..., xn, yn, linespecn)

linespec: 顏色、線型、資料點(marker)

>> x = -pi : 0.1 : pi;

>> y1 = sin(x);

>> plot(x, y1, 'b-+')

(4) plot(x, y, 'propname1', 'propval1', ..., 'propnamen', 'propvaln')

其中,屬性名可以是:

(i)   linewidth:    1、1.2、5 

(ii)  color:         'r'、[0.9 0.1 0.8]

(iii) marker:         '^'、'p'

(iv)  markersize:    1、1.2

(v)   markeredgecolor:    'r'、[0.9 0.1 0.8]

(vi)  marke***cecolor:    'r'、[0.9 0.1 0.8]

>> x = -pi : 0.1 : pi;

>> y1 = sin(x);

>> plot(x, y1, 'linewidth', 1.2, ...

'color', [0.2, 0.7, 0.3], ...

'marker', 's', ...

'markersize', 8, ...

'markeredgecolor', 'r', ...

'marke***cecolor', 'b')

2. fplot 函式繪圖

fplot(fun, limits, linespec)

>> fplot(@fun, [0.01, 0.1], 'r--')    % fun 是 m 函式

>> y = @(x)sin(x);        % 定義匿名函式

>> fplot(y, [0, 2*pi], 'r--')    % 畫出匿名函式的影象

3. ezplot 函式繪圖:引數方程,隱函式

ezplot(fun,[xmin, xmax, ymin, ymax])

>> ezplot('sin(5*t).*cos(t)', 'sin(5*t).*sin(t)', [0, pi]) 

>> ezplot('5*x.^2 + 10*y.^2 = 9', [-1.5, 1.5, -1.5, 1.5])

>> ezplot('5*x.^2 + 10*y.^2 - 9 = 0', [-1.5, 1.5, -1.5, 1.5])

4. 對數座標系下的函式繪圖

loglog(fun, ...)    % logspace(-2, 2, 10)

semilogx(fun, ...)

semilogy(fun, ...)

5. 極座標系下的函式繪圖

polar(theta, rho, ...)

6. 其它常見二維繪圖函式:pie、bar、stem、errorbar、rose、feather、

quiver、comet、hist、stair、scatter

7.1.2 圖形的修飾

1. subplot    在同乙個繪圖視窗中,繪製多個座標系    

2. figure     生產新的繪圖視窗,設定視窗大小和標題

>> figure('position', [300, 200, 500, 350], 'name', '這是視窗的標題')

3. axis       設定橫、縱座標軸刻度範圍

xlim       設定橫軸刻度範圍

ylim       設定縱軸刻度範圍

>> axis([-2 2 -1.2 1.2])

>> axis([-3.5 3.5 -1.2 1.2])

>> ylim([-1.1 1.1])

4. 設定橫、縱座標軸刻度

>> set(gca, 'xtick', [-3 -2 -1 -0.5 0 0.5 1 2 3])

5. 設定橫、縱座標軸標籤

>> xlabel('x軸')

>> ylabel('y軸')

>> xlabel('\gamma')

>> title('這是圖形的標題')

6. 設定橫、縱座標軸標籤

grid on/off

box on/off

hold on/off

clf7. legend 圖例

>> legend('y = sin(x)', 'y = cos(x)')

>> legend('y = sin(x)', 'y = cos(x)', 'location', 'southoutside')

>> legend('y = sin(x)', 'y = cos(x)', 'location', 'northwest')

matlab基礎程式設計筆記

與c語言不通 在matlab中使用比那輛可以不預先定義。命名規則 matlab的變數命名必須以字母開頭,之後可以在任意字 母,數字或者下劃線,同時變數命名不能有空格,變數名稱區分大小寫 matlab預設的預定於變數 ans 計算機結果的預設名稱 eps 計算機的零閾值 inf inf 無窮大 pi ...

MATLAB數模程式設計基礎(1)

matlab是數學建模常用軟體,下面整理一些適於數模比賽的matlab基礎操作,大部分來自網路課程。cd c users tim wei documents matlab a 1 a 1 b 2 b 2 c a b c 3 a 1 b 2 a b ans 3 help sin sin sine of...

MATLAB基礎筆記 6(程式設計)

m檔案的儲存 m檔案的開啟 m檔案的執行 函式檔案 子程式檔案。必須以函式定義為第一行內容。函式檔案必須以function開始,且必須有函式名 可以有輸入 輸出變數 除用global說明外,否則變數均為區域性變數。函式檔案可以是matlab本身提供的,也可以是使用者編制的程式。function y ...