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 ...