What is MATLAB?
• เปนภาษาคอมพิวเตอรภาษาหนึ่งคลายกับ ภาษา C หรือ fortan• เปนเครื่องคิดเลขที่มีประสิทธิภาพ• เปนโปรแกรมคอมพิวเตอรที่ใชงาย ไมยุงยาก• เปนเครื่องมือในการวิเคราะหขอมูลทางวิศวกรรมและทางสถิต• เปนเครื่องมือที่นําเสนอขอมูลดวยการ plots
MATLAB Prompt
• เคร่ืองหมาย >> หมายถึง พรอมรับคําสั่ง• พิมพหรือ paste commands จากน้ันกด enter• ถาตองการพิมพหลายคําสั่งใหใชเคร่ืองหมาย
semicolon (;) แยกคําสั่งแตละคําสั่งออกจากกัน โดยคําสั่งท้ังหมดจะอยูบนบรรทัดเดียวกัน
MATLAB Prompt
• ถาปดคําสั่งดวย semicolon (;) เปนการบอกให MATLAB ไมตองแสดง output ออกมา
• ถาตองการใหแสดง output ไมตองใส semicolon (;) • >>2+2
ans = 4
>>
การกําหนดตัวแปรบน MATLAB
• ตัวพิมพใหญและตัวพิมพเล็ก ทําใหชื่อของตัวแปรตางกัน• Matrix คือการสรางตัวแปรหลายคาในชื่อเดียว เชน
V=[0.98 1.02 .99 1.07];
การกําหนดตัวแปรบน MATLAB
• MATLAB สรางตัวแปรในรูปของ scalar (matrix ขนาด 1X1) vector (matrix ขนาด nX1 หรือ 1Xn) และ matrices
• ใน MATLAB การบวก หรือ ลบ กันของ vector ถาขนาดไมเทากันจะไมสามารถบวกกันได
Basic Operations
• กําหนด matrices โดย brackets [ ] เสมอ• ใชวงเล็บ ( ) เพ่ือเรียกคาของ matrices• การเรียกคา matrices คาแรกจะเปน row เสมอ และคาท่ีสอง
จะเปน column , เชน M1(3,2) ซึ่งไมเหมือนกับ M1(2,3)
Basic Operations
• ใช +, -, *, / สําหรับการ บวก, ลบ, คูณ, หาร• ใช ./ and .* สําหรับการหาร และคูณ matrices และ
vectors แบบ element by element• ใช / and * สําหรับการหาร และคูณ matrices ตามหลัก
ของ Linear Algebra• ใช ‘ สําหรับ transpose matrix• สามารถคูณ matrix ดวย scalar ไดเสมอ
การกําหนดตัวแปรดวยชวงตัวเลข
• เคร่ืองหมาย Colon, ( : ) กําหนดชวงตัวเลข• >>V3=[1:5] กําหนด V3 ใหมีคาเทากับ 1 ถึง 5 (เพิ่มคาทีละ 1)• >>V3=[1:3:13]’ กําหนด V3 ใหมีคาเทากับ 1 ถึง 13, (เพิ่มคาทีละ 3)
สังเกตุวามีเคร่ืองหมาย transposed• >>M5=M1(1:2,1:5) กําหนด M5 ใหมีคาเทากับ ทุกคาในแถวที่ 1-2
และทุก columns ที่ 1-5 ของตัวแปร M1• >>V3=M1(:,2) กําหนด V3 ใหมีคาเทากับ ทุกคาใน column ที่ 2
ของตัวแปร M1
การสรางเมตริกซพิเศษบน MATLAB
• rand(m,n) สรางเมตริกซที่แตละ element เปนคาสุม จาก 0-1• eye(n,m) สรางเมตริกซเอกลักษณ• ones(n,m) สรางเมตริกซหนึ่งหนวย• zeros(n,m) สรางเมตริกซศูนย• Linspace(a,b,n) การสราง row vector ขนาด 1Xn โดยคาแรกจะ
เทากับ a และคาสุดทายเทากับ b
คาพิเศษของ MATLAB
คาพิเศษ ความหมายpi ใชแทนคา ซึ่งมีคาเทากับ 3.14159
i และ j แทน imaginary value ซึ่งมีคา Inf แทน infinity สวนมากจะเกิดจากการหารจํานวนใดๆ ดวย 0
NaN แทน Not-a-Number แทนคาที่ทางคณิตศาสตรไมนิยาม (0/0)
eps แทน floating-point precision ของเคร่ือง computer ที่กําลังทํางานอยู
ans แทนคาที่ตํานวณคร้ังสุดทายที่ไมมีการกําหนดคาอื่น
ตัวดําเนินการทางคณิตศาสตร
การดําเนินการ รูปแบบพีชคณิต
รูปแบบของ MATLAB
การบวก (addition) a + b a + bการลบ (subtraction) a – b a – bการคูณ (multiplication) a b a * bการหารทางซาย (left division) b/a a\bการหารทางขวา (right division) a/b a/bการยกกําลัง (exponentiation) ab a^b
ลําดับความสําคัญ
ลําดับความสําคัญ ตัวดําเนินการ
1 วงเล็บ ( )
2 เลขยกกําลัง ^ และเรียงจากซายไปขวา
3 การคูณ การหาร และเรียงจากซายไปขวา
4 การบวก การลบ และเรียงจากซายไปขวา
คําส่ังพิเศษทางคณิตศาสตร
• sqrt(x) หาคารากที่ 2 ของ x• rem(x,y) หาเศษที่ไดจากการหาร x ดวย y• exp(x) หาคา ex
• log(x) หาคา ln(x) หรือ natural logarithm ของ x • log10(x) หาคา log10(x) หรือ logarithm ฐาน 10 ของ x
คําส่ังพิเศษสําหรับฟงกช่ันตรีโกณมิติ
• sin(x) หาคา sine ของมุม x radians• cos(x) หาคา cosine ของมุม x radians• tan(x) หาคา tan ของมุม x radians• sind(x) หาคา sine ของมุม x degree• cosd(x) หาคา cosine ของมุม x degree• tand(x) หาคา tan ของมุม x degree
คําส่ังพิเศษสําหรับฟงกช่ันตรีโกณมิติ
• asin(x) หาคา arcsine ของ x โดย -1 =< X <= 1 และคาที่ไดเปน radians
• acos(x) หาคา arccos ของ x โดย -1 =< X <= 1 และคาที่ไดเปน radians
• atan(x) หาคา arctan ของ x โดย x เปนจํานวนจริง และคาที่ไดเปนradians อยูระหวาง และ
• atan2(x,y) หาคา arctan ของ x โดย x เปนจํานวนจริง และคาที่ไดเปน radians อยูระหวาง และ ขึ้นอยูกับเครื่องหมาย x และ y
2
2
Saving your work
• >>save workspace1 x y saves ตัวแปร x and y ใน file ชื่อ workspace1.mat
• >>save workspace1 saves ทุกตัวแปร ใน file ชื่อ workspace1.mat
• >>load workspace1 เรียกคาตัวแปรใน file ชื่อ workspace1.mat
การเรียกใช help
• >>help แสดงหัวขอท้ังหมดท่ีมี • >>help graph2d แสดงตัวอยาง functions ของ graph2d• >>help plot แสดงตัวอยาง functions ของ plot• >>clear all ลบคาตัวแปรท้ังหมด
คําส่ังพิเศษสําหรับจํานวนจริง
• fix(x) หาคาจํานวนเต็มท่ีใกล x ไปทาง 0 มากท่ีสุด• ceil(x) หาคาจํานวนเต็มท่ีใกล x ไปทาง +มากท่ีสุด• floor(x) หาคาจํานวนเต็มท่ีใกล x ไปทาง -มากท่ีสุด• round(x) หาคาจํานวนเต็มท่ีใกล x มากท่ีสุด• sign(x) หาคาเครื่องหมายของ x• rat(x) ประมาณคาจํานวนจริงใหอยูในรูปเศษสวน• abs(x) หาคาสัมบูรณของ x
คําส่ังพิเศษสําหรับจํานวนเชิงซอน
z = a + bi• real(z) หาสวนจริง• imag(z) หาสวนจินตภาพ• abs(z) หาขนาด • conj(z) หาสังยุคเชิงซอน zz = a – bi• angle(z) หาคามุมหรือ argument ของ z
การเขียน M File• เปน file ท่ีมีนามสกุล .m• มีการเขียน 2 ลักษณะ
– Script file : รวบรวมคําส่ังตางๆ ที่ตองการให MATLAB ทํางานมาบรรจุไวใน file เดียว
– Function file : เปน file ที่สรางขึ้นเองเพื่อใชงานเหมือนเปนฟงกชั่นหนึ่งใน MATLAB
• เรียกประมวลผลบน MATLAB โดยการพิมพชื่อ file ท่ี command window
7/14/2012 copyright 2006 www.brainybetty.com 33
การเขียน M File
• เปน file ท่ีมีนามสกุล .m• มีการเขียน 2 ลักษณะ
– Script file : รวบรวมคําส่ังตางๆ ที่ตองการให MATLAB ทํางานมาบรรจุไวใน file เดียว
– Function file : เปน file ที่สรางขึ้นเองเพื่อใชงานเหมือนเปนฟงกชั่นหนึ่งใน MATLAB
• เรียกประมวลผลบน MATLAB โดยการพิมพชื่อ file ท่ี command window
7/14/2012 copyright 2006 www.brainybetty.com 34
Function file และ Script file
• การเรียก file ท้ังสองมาประมวลผลดวยการพิมพชื่อท่ี command window– folder ที่เก็บ file ไว ตองอยูใน search path ของ MATLAB ดวย– File set path add folder
• ท่ีตัวแปร function file ไฟลจะเปนตัวแปรประเภท โลคอล (local variable)
• ท่ีตัวแปร Script file จะเปนตัวแปรประเภท โกลบอล (Global variable)
7/14/2012 copyright 2006 www.brainybetty.com 37
ตัวอยางการเขียน Function file และ Script file
• ตัวอยางท่ี 1 จงเขียน script file และ function file เพ่ือหาคาผลรวมของเลขจํานวนเต็มตั้งแตคาท่ี 1 ถึง N โดยการเรียกใชงานของ function file มีรูปแบบดังน้ี
y = MySum(N)
7/14/2012 copyright 2006 www.brainybetty.com 38
การใช Comment (%)
• หลังเคร่ืองหมาย “%” : MATLAB จะไมทําการประมวลผล• ใน M-file ขอความหลังเคร่ืองหมาย “%” ทุกบรรทัดจะหมายถึง
help ของ file น้ัน
7/14/2012 copyright 2006 www.brainybetty.com 40
Simple Plot• เขียนกราฟ x-y แบบงายๆ• คําสั่ง
plot(x,y) : สราง linear plot ของ x-y โดย x เปนแกน นอนและ y เปนแกนตั้ง
plot(z) : ถา z เปน complex number จะ plot ดวย (Re(z),Im(z))
plot(x,y,’str’) : เมื่อ ‘str’ คือ character string กําหนด ลักษณะ และสีของเสนกราฟ
plot(x,y,’str1’,w,v,’str2’) : plot curve มากกวา 1 เสน ใน ระบบแกนเดียวกัน
Simple Plot• คําสั่ง
plotyy(x1,y1,x2,y2) : สราง linear plot ของ x1-y1 และ x2-y2แตจะวางแกน y ไวสองขางของกราฟ y1 อยู
ซายมือและ y2 อยูขวามือsemilogx(x,y) : สราง plot ของ x-y โดย x เปนสเกล log
และ y เปนเชิงเสนsemilogy(x,y) : สราง plot ของ x-y โดย y เปนสเกล log
และ x เปนเชิงเสนloglog(x,y) : สราง plot บนสเกล log ของ x-y
Simple Plot• คําสั่ง
title(‘txt’) : เขียนชื่อกราฟ วางท่ีดานบนตรงกลางxlabel(‘txt’) : เขียนชื่อแกน x วางตรงกลางของแกน x ylabel(‘txt’) : เขียนชื่อแกน y วางตรงกลางของแกน y grid on : ใหแสดงลายเสนบนกราฟgrid off : ไมตองแสดงลายเสนบนกราฟhold on : plot ซ้ําในกราฟรูปเดิม โดยไมตองลบกราฟเดิมhold off : ยกเลิก hold on
SubPlot• การสรางกราฟยอยใน Graphic window เดียว• คําสั่ง
subplot(m,n,p) : สรางกราฟยอย โดยวางอยูในรูป matrix ขนาด mxn และให plot ลงในตําแหนง p