這份 MATLAB 課程筆記先整理命令視窗、矩陣與繪圖指令,再依章節收錄練習題。閱讀時可以先查基本語法,再對照主程式、副程式與執行結果。
本篇重點- 查閱工作區、矩陣和數值運算指令
- 對照 plot、subplot 與圖形設定範例
- 依課本章節查找練習與全域變數範例
原始實作記錄於 2019 年;以下操作畫面與程式範例保留當時版本。
先整理常用指令,再依課本章節與上課日期保留練習。查閱時先看語法用途,再回到程式與原有結果;主程式和副程式需一起對照。
基礎常用語法
工作區保存目前變數,命令視窗顯示輸入與輸出;清除其中一個不等同於清除另一個。先分清 clear、clc 與保存資料的用途。
命令視窗
文字顏色表示
黑色:一般文字
紅色:錯誤
藍色:for迴圈指令、if指令
綠色:註解
紫色:字串
一般程式編輯
基本表示
1 2 3 4 5 6 7 8 9 10 11 12 13
| = :等號 ( :算術運算的左括號。 ) :算術運算的右括號。 [ :矩陣或向量的左括號。 ] :矩陣或向量的右括號。 ; :是否要列印的符號,加在字尾後面。有加表示不列印;沒加表示列印。(同時有Enter的功能) . :小數點符號。
! :執行外部命令的符號(特別是DOS作業系統的指令)。 , :分離函數參數的符號。(若是'單引號'時,則代表字串的符號) : :資料取出的符號。 ... :程式內連接的符號。 ' :矩陣轉置的符號。
|
常數及變數表示
1 2 3 4 5 6 7 8 9 10
| ans :代表答案的意思。 eps :浮點數。 pi :等於3.14159。 realmax :代表最大實數。 realmin :代表最小實數。 NaN :代表非數字符號。 inf :代表無限大。 nargin :代表函數輸入之參數的個數。 nargout :代表函數輸出之參數的個數。 i,j :代表複數符號。
|
輸入指令介紹
執行後會提示輸入,結果保存到變數 a;回傳內容與使用的 input 形式有關。
開根號
矩陣的設定方法
1 2 3 4
| a=[ 1 2 3 4 5 6 7 8 9] a=[5 6 7; 8 9 0; 1 2 3]
|
尋找矩陣,加總值和平均值、最大、最小值
1 2 3 4 5
| A = randn(3,3) B = max(max(A)) C = min(min(A)) D = mean(mean(A)) E = sum(sum(A))
|
- A 使用亂數產生,因此數值不一定與原紀錄相同;應比對運算方式與資料維度。
1 2 3 4 5 6 7 8 9 10 11 12
| A = 1.1006 -1.4916 2.3505 1.5442 -0.7423 -0.6156 0.0859 -1.0616 0.7481 B = 2.3505 C = -1.4916 D = 0.2131 E = 1.9182
|
向量
1 2 3
| a=1:10 b=1:0.1:10 c=[1 2 3 4 5]
|
取絕對值
矩陣和陣列運算字元
矩陣乘法與逐元素運算不同。閱讀運算式時注意 * 和 .*、/ 和 ./、^ 和 .^ 的差別,先檢查維度能否配合。
1 2 3 4 5 6 7 8 9
| + - * / \ ^ .* ./ .^
|
四捨五入
1 2
| A = randn(1,5) B = round(A)
|
- A 使用亂數產生,因此數值不一定與原紀錄相同;應比對運算方式與資料維度。
1 2 3 4
| A = -1.6305 1.4600 2.0500 0.1205 -0.9899 B = -2 1 2 0 -1
|
時間產生
clock指令,時間,其產生格式為[年 月 日 時 分 秒]。
檢查測試指令
exist指令,檔案或變數是否存在測試指令。(5-26頁)
- 範例
a=3 先建立變數 a,再以 exist('a', 'var') 查詢名稱,存在時回傳 1。查詢的是變數名稱,不是把 a 的數值傳入 exist。
註解:
- 若表示變數不存在,則回傳數字為0。
- 若是一般變數,則會傳回數字為1。
- 若是一般 .M 檔,不管名稱有無鍵入.M的文字均會回傳數字為2。
- 若是一般 MEX 檔,則會傳回數字為3。
- 若是一般 Simulink 檔,則會傳回數字為4。
- 若是內建函數,則會傳回數字為5。
基本矩陣運算
"'":共軛轉置;對實數矩陣與一般轉置相同,複數矩陣則還會取共軛。
a' :計算矩陣 a 的共軛轉置。若只需轉置而不取共軛,可使用 a.'。
det(a):計算矩陣a的行列式值。(線性代數)
rank(a):計算矩陣的秩。
inv(a):計算矩陣a的反矩陣運算。
trace(a):計算矩陣a的對角線和。
查看矩陣維度
1 2
| a = randn(3,4); size(a)
|
查看向量的長度
基本繪圖 (plot)
顯示為:

線的格式有"o"、"--"、":"、"-."、"."、"+"、"*"、"x"等。
顏色的指定如下:紅色"r"、藍色"b"、白色"w"、綠色"g"等。
特殊刻度圖形的處理
(範例參閱8.7)
- semilogx:水平軸是對數刻度圖。
- semilogy:垂直軸是對數刻度圖。
- loglog :全對數刻度圖。
- logspace:配合對數刻度來取資料點。
- linspace:配合線性刻度來取資料點。
圖形視窗切割指令
(範例參閱8.8)
- subplot(n):以三位數指定列數、欄數與子圖位置,例如 223 表示 2 列、2 欄中的第 3 個位置。
- 建立單一圖形可使用 subplot(111);這不是撤銷先前操作的還原指令。
- 其中有關數值n的定義如下:(數值n的定義功能)
111:預設的數值,顯示單一個圖形。
121:顯示二個圖形的設定,此數值表示此圖置於左邊的情形。
122:顯示二個圖形的設定,此數值表示此圖置於右邊的情形。
221:顯示四個圖形的設定,此數值表示此圖置於左上方的情形。
222:顯示四個圖形的設定,此數值表示此圖置於右上方的情形。
223:顯示四個圖形的設定,此數值表示此圖置於左下角的情形。
224:顯示四個圖形的設定,此數值表示此圖置於右下角的情形。
特殊二維圖形的繪製
(範例參閱8.9、8.10、8.11)
- stairs:階梯圖指令。
- bar:條形圖指令。
- bar3:三維條形圖。
- pie:圓形圖。
- pie3:三維圓形圖。
hold 指令
(範例參閱8.12)
axis:座標刻度控制指令
- 有關
axis的用法之指令及說明如下(範例參閱8.14)1 2 3 4 5 6 7
| 1. axis([x軸最小 x軸最大 y軸最小 y軸最大]) 2. axis([x軸最小 x軸最大 y軸最小 y軸最大 z軸最小 z軸最大]) 3. axis('auto') 4. axis('ij') 5. axis('equal') 6. axis('square') 7. axis('xy')
|
範例練習題
每題先辨認已知值與要求的結果,再看主程式與副程式如何傳遞資料。原有表格與圖形保留作為課堂範例,不額外推論資料來源或結果。
第三章
例題 3.1
請寫一個 MATLAB 程式,計算華氏溫度,轉換攝氏溫度。
1 2 3 4 5 6
| clear
f=input('請輸入華氏溫度:'); c=(5/9)*(f-32); fprintf('攝氏溫度為: %f\n',c);
|
例題 3.2
T公式
z1=(za*zc)/(za+zb+zc);
z2=(zb*zc)/(za+zb+zc);
z3=(za*zb)/(za+zb+zc);
反向轉換公式
za=(z1*z2+z2*z3+z3*z1)/z2;
zb=(z1*z2+z2*z3+z3*z1)/z1;
zc=(z1*z2+z2*z3+z3*z1)/z3;
若已知z1、z2、z3數值,求za、zb、zc數值。
1 2 3 4 5 6 7 8 9 10 11 12
| clear
z1=input('請輸入z1值:'); z2=input('請輸入z2值:'); z3=input('請輸入z3值:'); za=(z1*z2+z2*z3+z3*z1)/z2; zb=(z1*z2+z2*z3+z3*z1)/z1; zc=(z1*z2+z2*z3+z3*z1)/z3;
za zb zc
|
若已知za、zb、zc數值,求z1、z2、z3數值。
1 2 3 4 5 6 7 8 9 10 11 12 13
| clear
za=input('請輸入za值:'); zb=input('請輸入zb值:'); zc=input('請輸入zc值:');
z1=(za*zc)/(za+zb+zc); z2=(zb*zc)/(za+zb+zc); z3=(za*zb)/(za+zb+zc);
z1 z2 z3
|
第四章
例題 4.3
|
中華民國 |
香港 |
新加坡 |
南韓 |
| 1996年 |
2.6 |
2.8 |
2.0 |
2.0 |
| 1997年 |
2.7 |
2.4 |
1.8 |
2.6 |
| 1998年 |
2.7 |
4.7 |
3.2 |
6.8 |
| 1999年 |
2.9 |
6.1 |
3.5 |
6.3 |
| 2000年 |
3.0 |
4.9 |
3.1 |
4.1 |
| 2001年 |
4.6 |
5.1 |
3.3 |
3.7 |
| 2002年 |
5.2 |
7.3 |
4.4 |
3.1 |
| 2003年 |
5.1 |
8.3 |
4.5 |
3.5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| clear a=[2.6 2.8 2.0 2.0 2.7 2.4 1.8 2.6 2.7 4.7 3.2 6.8 2.9 6.1 3.5 6.3 3.0 4.9 3.1 4.1 4.6 5.1 3.3 3.7 5.2 7.3 4.4 3.1 5.1 8.3 4.5 3.5]; fprintf('Column 是國家 and row 是年\n') a fprintf('\n') fprintf('取出新加坡之所有失業率是\n') a(:,3) fprintf('\n') fprintf('取出2000年之所有失業率是\n') a(5,:) fprintf('\n') fprintf('取出2002年南韓之所有失業率是\n') a(7,4) fprintf('\n')
|
第七章
例題 7.5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
clear DE=1; DP=10; NB=1e17; NE=1e19; W=0.5e-6; LE=1e-6; LP=LE; R=1/(1+DE/DP*NB/NE*W/LE); RA=1./(1+DE./DP.*NB./NE.*W./LE); ral=pnpee(DE,DP,NB,NE,W,LE); fprintf('\n npn電晶體的射極效率之結果\n') fprintf('\n 射極效率矩陣算法:%f\n',R) fprintf('\n 射極效率向量算法:%f\n',RA) fprintf('\n 射極效率呼叫函數的算法:%f\n',ral)
fprintf('\n\n') aaa=sech(W/LP); AAA=sech(W./LP); fprintf('\n pnp電晶體的傳導因數之結果\n') fprintf('\n 傳導因數-矩陣算法:%f\n',aaa) fprintf('\n 傳導因數-向量算法:%f\n',AAA)
|
例題 7.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
clear ktq=0.0259; NA=1e18; ND=1e15; ni=1.45e10; q=1.6e-19; es=8.85e-14; Vbi=ktq*log(NA*ND/ni^2); Vbia=ktq.*log(NA.*ND./ni.^2); fprintf('\n pn接面之內建電壓之結果\n') fprintf('\n 內建電壓矩陣算法:%f\n',Vbi) fprintf('\n 內建電壓向量算法:%f\n',Vbia)
fprintf('\n\n') aaa=sqrt(2*es*Vbi/q/ND); AAA=sqrt(2.*es.*Vbi./q./ND); fprintf('\n pn接面空乏層厚度的計算之結果\n') fprintf('\n 空乏層厚度的計算-矩陣算法:%f\n',aaa) fprintf('\n 空乏層厚度的計算-向量算法:%f\n',AAA)
|
例題 7.7
主程式
1 2 3 4 5 6 7 8 9 10 11
|
clear x=6; u=4; pxu=exp(-1*u)*u^x/ranking(x); pxuv=exp(-1*u).*u.^x./ranking(x); fprintf('\n Poisson分佈函數之計算的結果\n') fprintf('\n 矩陣算法:%f\n',pxu) fprintf('\n 向量算法:%f\n',pxuv)
|
副程式.m檔案(ranking)
1 2 3 4 5 6 7 8 9 10
|
function sss=ranking(n) sss=ones(size(n)); for j=1:length(n); for i=1:n(j) sss(j)=sss(j).*i; end end
|
第八章
例題 8.1
1 2 3 4 5 6 7 8 9
|
clear t=0:0.1:3; f1=exp(-t).*sin(t)*10; plot(t,f1) pause
|
例題 8.3
1 2 3 4 5 6 7 8
|
t=-10:0.1:10; a=[sin(t) tanh(0.5*t)]; plot(t,a) pause
|
例題 8.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| clear t=0:0.1:3; f1=exp(-t).*sin(t)*10; f2=t.^3-4*t.^2+t+2; plot(t,f1,'*',t,f2) title('display two function') xlabel('time input') ylabel('magnitude') grid gtext('function 1') gtext('function 2') pause grid pause
|
例題 8.7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| clear t=logspace(-1,1); f1=exp(-t)*100; f2=t.^3+4.^2+t+2; loglog(t,f1,'*',t,f2) title('display two function') xlabel('time input') ylabel('magnitude') grid; gtext('function 1') gtext('function 2') pause semilogx(t,f1,'*',t,f2) title('display two function') xlabel('time input') ylabel('magnitude') grid; gtext('function 1') gtext('function 2') pause semilogy(t,f1,'*',t,f2) title('display two function') xlabel('time input') ylabel('magnitude') grid; gtext('function 1') gtext('function 2') pause
|
例題 8.8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| clear t=0:0.1:3; f1=exp(-t).*sin(t)*10; f2=t.^3-4*t.^2+t+2; subplot(121),plot(t,f1,'*',t,f2) title('display two function') xlabel('time input') ylabel('magnitude') t=logspace(-1,1); f3=exp(-t).*100; f4=t.^3+4*t.^2+t+2; subplot(222),loglog(t,f3,'*',t,f4) title('display two function') xlabel('time input') ylabel('magnitude') subplot pause
|
例題 8.9
1 2 3 4 5 6 7 8 9 10
| clear t=0:0.2:4; a=[sin(t)]; subplot(221),bar(a) subplot(222),bar(t,a) number=[ 1 5 10 20 15 9]; ga=50:10:100; subplot(224),bar(ga,number) subplot pause
|
例題 8.10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
clear y=[ 1 2]; z=[ 1 5 8 3 6 -3 6 2 7 -1]; bar3(y,z) title('3d bar graph') pause clear clf y=[ 1 2 3 4 5]; z=[ 1 5 8 3 6 7 -3 6 2 7 -1 2 5 4 8 -4 6 7 3 -6 7 1 9 1 3 7 8 9 4 6]; bar3(y,z) title('3d bar graph')
|
例題 8.11
1 2 3 4 5 6 7 8 9 10 11 12
|
clear t=0:0.2:4; a=[sin(t)]; subplot(221),stairs(a) subplot(223),stairs(t,a) ga=[sin(t)]; subplot(224),plot(t,ga) subplot pause
|
例題 8.12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
clear
t=0:0.1:3; f1=exp(-t).*sin(t)*10; f2=t.^3-4*t.^2+t+2; plot(t,f1,'*',t,f2,'.')
hold pause
plot(t,t,'+') pause
t2=-10:0.1:10; a=[3*sin(t2) 3*tanh(0.5*t2)];
plot(t2,a) title('display two function') xlabel('time input') ylabel('magnitude') pause
hold
subplot(221),plot(t,f1,'*',t,f2,'.') subplot(222),plot(t,t,'+') subplot(223),plot(t2,a) subplot pause
|
例題 8.14
完整程式範例(96 行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
clear t=1:0.1:10; y=exp(-t).*cos(7.*t); plot(t,y) axis([1 10 -1 1]) xlabel('x'); xlabel('y'); title('2D plot'); pause
plot(t,y) axis('auto') xlabel('x'); xlabel('y'); title('2D plot which axis is auto'); pause
plot(t,y) axis('ij') xlabel('x'); xlabel('y'); title('2D plot which axis is ij'); pause
plot(t,y) axis('xy') xlabel('x'); xlabel('y'); title('2D plot which axis is xy'); pause
plot(t,y) axis('square') xlabel('x'); xlabel('y'); title('2D plot which axis is square'); pause
plot(t,y) axis('equal') xlabel('x'); xlabel('y'); title('2D plot which axis is equal'); pause
z=exp(-2.*t).*cos(6.*t); plot3(t,y,z) axis([1 10 -1 1 -1 1]) xlabel('x'); xlabel('y'); xlabel('z'); title('3D line plot'); pause
plot3(t,y,z) axis('equal') xlabel('x'); xlabel('y'); xlabel('z'); title('3D line plot is equal'); pause
clear x,y,z; [x y z]=sphere(15);
surf(x,y,z) axis([-1.5 1.5 -1.5 1.5 -1.5 1.5]) xlabel('x'); ylabel('y'); zlabel('z'); title('3D surface of sphere'); pause
surf(x,y,z) axis('square') xlabel('x'); ylabel('y'); zlabel('z'); title('3D surface of sphere in square'); pause
surf(x,y,z) axis('auto') xlabel('x'); ylabel('y'); zlabel('z'); title('3D surface of sphere in auto'); pause
|
例題 8.15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
clear x=-5:0.1:5; y=-5:0.1:5; [X Y]=meshgrid(x,y); Z=exp(0.2.*Y).*sin(Y).*cos(X);
mesh(Z) xlabel('x-axis') ylabel('y-axis') zlabel('z-axis') title('3d graph') pause
meshc(X,Y,Z) xlabel('x-axis') ylabel('y-axis') zlabel('z-axis') title('3d graph with contour') pause
meshz(X,Y,Z) xlabel('x-axis') ylabel('y-axis') zlabel('z-axis') title('3d graph with curtain') pause
|
例題 8.16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
clear x=-5:0.1:5; y=-5:0.1:5; [X Y]=meshgrid(x,y); Z=exp(0.015.*Y).*sin(Y).*cos(X);
contour(X,Y,Z) pause
contour3(X,Y,Z) pause
|
例題 8.21
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
clear ang=0:0.1:2*pi; mag=cos(ang).*sin(3*ang);
polar(ang,mag) pause
polar(ang,mag,'*') pause
|
例題 8.22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
clear [x y z]=cylinder(28);
surf(x,y,z) xlabel('x'); ylabel('y'); zlabel('z'); title('3D surface of cylinder(28)') pause
mesh(x,y,z) xlabel('x'); ylabel('y'); zlabel('z'); title('3D surface of cylinder(28)') pause
|
例題 8.23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
clear x,y,z w=0:0.1:1.5*pi; [x y z]=cylinder(cos(w));
surf(x,y,z) xlabel('x'); ylabel('y'); zlabel('z'); title('3D surface of cylinder(cos(w))') pause
mesh(x,y,z) xlabel('x'); ylabel('y'); zlabel('z'); title('3D mesh of cylinder(cos(w))') pause
|
期末複習練習
兩層 for 迴圈
1 2 3 4 5 6 7
| clear
for i=1:10 for j=1:8 a(i,j) =i+j end end
|
三層 for 迴圈
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
clear n=3; for i=1:n for j=1:n for k=1:n a(i,j,k)=i+j+k; end end end disp(' display a matrix') a
|
global 與函式資料傳遞
要共用 global 變數,相關工作區與函式需一致宣告。另一種方式是透過參數與回傳值傳遞資料,通常較容易看出相依關係;本節保留兩種寫法供比較。
Test 1
比較取得單一結果 c 的兩種方式。
- 主程式
1 2 3 4 5 6 7 8 9 10 11
|
clear global b a=1; b=1; c=ffff(a) a=2; b=10; c=ffff(a)
|
副程式有以下兩種方式
存為ffff.m檔 (宣告全域值)
1 2 3
| function r=ffff(a) global b r=a*b;
|
存為ffff.m檔 (不宣告全域值)
1 2
| function r=ffff(a,b) r=a*b;
|
Test 2
取得 c 與 d 兩個結果時,可用 [c d] 指定輸出;下方比較全域變數與函式回傳的方式。
- 主程式
1 2 3 4 5 6 7 8 9 10 11
|
clear global b a=1; b=1; c=ffff(a) a=2; b=10; [c d]=ffff(a)
|
副程式有以下兩種方式
存為ffff.m檔 (宣告全域值)
1 2 3 4
| function [r k]=ffff(a) global b r=a*b; k=a+b;
|
存為ffff.m檔 (不宣告全域值)
1 2 3
| function [r k]=ffff(a,b) r=a*b; k=a+b;
|
subplot 圖形視窗切割指令
subplot(n):指定圖形分割方式與子圖位置。
subplot(111):建立覆蓋整個區域的單一座標軸,並非一般的還原操作。
其中有關數值n的定義如下:數值n的定義功能
- 111:預設的數值,顯示單一個圖形。
- 121:顯示二個圖形時的設定,此數值表示此圖置於左邊的情形。
- 122:顯示二個圖形時的設定,此數值表示此圖置於右邊的情形。
- 221:顯示四個圖形時的設定,此數值表示此圖置於左上方的情形。
- 222:顯示四個圖形時的設定,此數值表示此圖置於右上方的情形。
- 223:顯示四個圖形時的設定,此數值表示此圖置於左下方的情形。
- 224:顯示四個圖形時的設定,此數值表示此圖置於右下方的情形。
polar 極座標的繪圖
(範例參閱8.21)
依日期整理的課堂實作
2019年09月18日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| I=1; V=5; theta=10; P=1*V*cos(theta);
AA=[ 1, 1, 1; 2, 2, 2; 3, 3, 3];
A=[ 1 2 3 4 2 3 7 5 3] B=[ 1 7 3 4 2 3 10 15 20];
a =input('要顯示的文字'); b =input('我的測試','s'); disp('要顯示的字串')
H =[-1.2 sqrt(9) (1+2)*3/4];
C=A*B
C=[1+2i,3+4i]
x=1:5 y=0:pi/4:pi z=6:-1:1
A(3,3) = A(1,3) + B(3,1)
|
2019年09月25日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| clear
i = 0; a = 1; b = 2; c = 3; for i = 1:10 i; a=a+i; end
while a==b z=a+b; end
if b~=c d=b+c else d=b-c end x=(1:100)*10
plot(x) title('圖表') xlabel('資料數列') ylabel('voltage') fprintf('\n\n') a b c
|
2019年10月2日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| clear
t1 = 0: 0.01 : 2 * pi; plot(t1 , cos(6.*t1),'r'); xlabel('t'); ylabel('y'); grid;
t2=1:0.1:10; plot(t2,exp(-0.3*t2).*sin(t2));
tc=clock; t=0:0.1:20;
plot(t,sin(2*t)); xlabel('t'); ylabel('y'); title('sin')
grid; tidata=clock-tc
|
2019年10月9日
第一個程式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| clear
a=10; b=100; c=a+b;
clear iqs = 0; ids = 0; iqr = 0; idr = 0;
a=[iqs ids iqr idr]; aa=[1 2 3 4]; b=a+aa; c=b'; t= 1:10; s = [1 2 3 4 ... 5 6 7 8 ]; x = randn(10,10);
plot(t,x(1,1:10));
e = [ 1 2 5 6 4 8 2 5 8 5]; f = e(1,3:6)
g = [ 1 2 5 5 6 8; 5 2 5 8 5 2; 5 5 2 5 8 5]; h = g(2:3,3:5)
a1 = 3+4i realmax
dec2base(32,2)
|
第二個程式
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| clear
Za=input('Za: '); Zb=input('Zb: '); Zc=input('Zc: ');
Z1=(Za*Zc)/(Za+Zb+Zc); Z2=(Zb*Zc)/(Za+Zb+Zc); Z3=(Za*Zb)/(Za+Zb+Zc);
fprintf('The results for T network\n') Z1 Z2 Z3
|
2019年10月23日
1 2 3 4 5 6 7 8 9 10
| A = randn(3,3)
|
練習時的檢查順序
先確認目前目錄與函式檔名,再檢查輸入資料的大小及型態,最後比較數值與圖形。遇到錯誤時,先讀第一個相關錯誤訊息;亂數範例應比對結構,避免把截圖數值當成唯一答案。
參考:exist 名稱查詢、subplot 圖形配置。