SlideShare a Scribd company logo
1 of 10
Download to read offline
บทที่ 1
ความรู้พื้นฐาน MATLAB
1.1 บทนํา
MATLAB เป็นโปรแกรมที่ได้รับการออกแบบมาเพื่อใช้ในการคํานวณทางคณิตศาสตร์
โดยเฉพาะอย่างยิ่งกับงานทางวิศวกรรมและวิทยาศาสตร์ โครงสร้างพื้นฐานการคํานวณของ
โปรแกรม MATLAB อยู่ในรูปของเวกเตอร์หรือเมทริกซ์ ซึ่งก็เป็นที่มาของชื่อโปรแกรมด้วย กล่าวคือ
MATLAB เป็นคําย่อของคําสองคําในภาษาอังกฤษคือ MATrix LABoratory จุดเด่นของโปรแกรม
MATLAB คือการที่มีชุดคําสั่งจํานวนมากสําหรับใช้ในการประมวลผลข้อมูลที่บรรจุอยู่ในเมทริกซ์
ครอบคลุมทฤษฎีทางคณิตศาสตร์ทั้งที่เป็นพื้นฐานและการประยุกต์อย่างกว้างขวาง ที่สําคัญเรา
สามารถใช้งานโปรแกรมในการแก้ปัญหาต่าง ๆ ได้อย่างรวดเร็วและมีประสิทธิภาพสูงมาก
นอกจากนี้ MATLAB ยังได้พัฒนา GUI (Graphical User Interface) ที่เป็นระบบระเบียบทําให้การ
สร้างโปรแกรมประยุกต์เฉพาะตามที่ผู้ใช้ต้องการสามารถทําได้โดยง่าย คุณสมบัติที่ดีเยี่ยมเหล่านี้ทํา
ให้ในปัจจุบันมีการนํา MATLAB มาใช้เป็นเครื่องมือในการเรียนการสอนหรือนําไปประยุกต์ใช้กับ
งานวิจัยอย่างแพร่หลาย
การเรียนรู้วิธีใช้งานโปรแกรม MATLAB ในระดับพื้นฐานจัดว่าเป็นเรื่องที่ไม่ยากนัก และ
โดยทั่วไปจะพบว่านิสิตนักศึกษาหรือนักวิชาการสามารถใช้งาน MATLAB ขั้นพื้นฐานได้ทันทีหลังจาก
ที่ได้ทดลองใช้งานด้วยตนเองตามตัวอย่างที่อธิบายในบทที่ 1 นี้ ดังนั้น รูปแบบการอธิบายในบทนี้จึง
เน้นการใช้ตัวอย่างเป็นหลัก เพื่อให้ผู้อ่านสามารถทราบถึงแนวทางการใช้ประโยชน์จากโปรแกรม
MATLAB ได้อย่างรวดเร็วและมีประสิทธิผล แนวทางการอ่านเพื่อทําความเข้าใจในบทนี้จึง
2 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า
ตรงไปตรงมา คือ ให้ผู้เรียนทดลองพิมพ์คําสั่งตามตัวอย่างไปทีละบรรทัดจนครบทั้งบท เพราะการ
ลงมือพิมพ์คําสั่งเองเป็นปัจจัยหลักที่จะช่วยให้ผู้อ่านสามารถทําความคุ้นเคยและเข้าใจหลักการ
พื้นฐานของ MATLAB ได้อย่างรวดเร็ว เนื้อหาที่จะกล่าวถึงต่อไปมีการเรียงลําดับดังนี้ การใช้คําสั่ง
สําหรับการสร้างตัวแปรในรูปของเวกเตอร์หรือเมทริกซ์ ฟังก์ชันพื้นฐานสําหรับการสร้างเมทริกซ์
ฟังก์ชันการวาดกราฟ การบวกลบคูณหารอย่างง่าย และการกําหนดรูปแบบการแสดงผลตัวเลข
1.2 การสร้างตัวแปรเวกเตอร์และเมทริกซ์
การคํานวณต่าง ๆ ในโปรแกรม MATLAB อยู่บนพื้นฐานของตัวแปรที่กําหนดในรูปของ
เวกเตอร์ (vector) และเมทริกซ์ (matrix) เป็นหลัก ดังนั้น การเรียนรู้โปรแกรม MATLAB เพื่อให้
สามารถใช้งานได้อย่างมีประสิทธิภาพ ผู้ใช้งานจําเป็นต้องเข้าใจถึงหลักการและวิธีการสร้างตัวแปร
เหล่านี้ให้ถ่องแท้ก่อน
ในลําดับแรกจะแสดงวิธีสร้างตัวแปร x ที่เป็นเวกเตอร์แถว (row vector) โดยใช้คําสั่ง
ต่อไปนี้
>> x = [1 2 3 4]
x =
1 2 3 4
สังเกตว่าสมาชิกหรือเอลิเมนต์ (element) แต่ละตัวในเวกเตอร์ x จะเขียนแยกจากกันโดยใช้ช่องว่าง
หรืออาจจะใช้เครื่องหมาย “,” ได้ด้วยเช่นกัน หากต้องการเมทริกซ์ทรานส์โพสของ x ก็สามารถทํา
ได้โดยง่าย ดังนี้
>> y = x'
y =
1
2
3
4
ซึ่งจะได้ตัวแปร y ขึ้นมาใหม่ที่เป็นเมทริกซ์ทรานส์โพสของ x ดังที่แสดงข้างบน
บทที่ 1 ความรู้พื้นฐาน MATLAB 3
หากต้องการกําหนดเมทริกซ์ที่มีขนาด 3x4 ขึ้นมาใช้งาน ให้กระทําดังนี้
>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12]
A =
1 2 3 4
5 6 7 8
9 10 11 12
สังเกตว่าเครื่องหมาย “;” ใช้สําหรับระบุว่าเป็นจุดสิ้นสุดของแต่ละแถว ถึงตรงนี้เราอาจจะใช้คําสั่ง
who หรือ whos เพื่อขอดูตัวแปรทั้งหมดที่ได้มีการสร้างขึ้นในหน้าต่างที่ใช้งานอยู่หรือที่เรียกว่า
พื้นที่ทํางาน (workspace) หากใช้คําสั่ง who ก็จะได้ผลเป็น
>> who
Your variables are:
A x y
หรือถ้าต้องการทราบขนาดหรือหน่วยความจําของตัวแปรแต่ละตัวด้วย ให้ใช้คําสั่ง whos แทน
>> whos
Name Size Bytes Class
A 3x4 96 double array
x 1x4 32 double array
y 4x1 32 double array
Grand total is 20 elements using 160 bytes
ในกรณีที่ต้องการทราบขนาดของตัวแปรตัวใดตัวหนึ่ง ให้ใช้คําสั่ง size(x) ยกตัวอย่างเช่น
>> size(x)
ans =
1 4
4 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า
ซึ่งบอกเราว่าเมทริกซ์ x มีขนาดเท่ากับ 1x4 คือมีเพียงแถวเดียวและมีสี่คอลัมน์ สังเกตว่าคําสั่งนี้ไม่มี
การนําค่าของฟังก์ชัน size(x) ไปใส่ลงในตัวแปรใด ๆ ดังในกรณีก่อนหน้า ในกรณีเช่นนี้ MATLAB
จะบรรจุผลลัพธ์ที่ได้ลงในตัวแปรที่มีชื่อเฉพาะว่า ans เสมอ
เราสามารถอ้างถึงหรือกําหนดค่าให้แก่สมาชิกแต่ละตัวในเมทริกซ์ได้ดังนี้
>> x = A(2,3)
x =
7
คําสั่งนี้ให้นําค่าของสมาชิกในแถวที่สองและคอลัมน์ที่สามของเมทริกซ์ A ไปบรรจุลงในตัวแปร x ที่
ได้ประกาศขึ้นใหม่
แต่หากต้องการสมาชิกทั้งแถวจากเมทริกซ์ A เช่น ต้องการสมาชิกทั้งหมดในแถวที่ 3 ไปเก็บลงใน
เวกเตอร์ y ที่กําหนดขึ้นมาใหม่ให้สั่งดังนี้
>> y = A(3,:)
y =
9 10 11 12
สังเกตว่ามีการใช้เครื่องหมาย “:” เพื่อระบุช่วงของคอลัมน์ว่าให้นําสมาชิกของทุกคอลัมน์มาใช้
เพื่อให้เห็นภาพการใช้งานเครื่องหมาย “:” ที่ชัดเจนขึ้น จะยกตัวอย่างคําสั่งต่อไปนี้ซึ่งดึงสมาชิกใน
แถวที่สองของเมทริกซ์ A เฉพาะในคอลัมน์ที่ 1 ถึง 3 เท่านั้น
>> y = A(2,1:3)
y =
5 6 7
จะเห็นว่าตัวเลขที่อยู่ก่อนหน้าและหลังเครื่องหมาย “:” เป็นตัวระบุช่วงของคอลัมน์ที่ต้องการ
สําหรับตัวอย่างที่ซับซ้อนขึ้นอีกเล็กน้อยก็คือการดึงสมาชิกในแถวที่หนึ่งและสองโดยที่สนใจเฉพาะ
สมาชิกในคอลัมน์ที่สองและสามเท่านั้น ซึ่งจะใช้คําสั่งดังนี้
บทที่ 1 ความรู้พื้นฐาน MATLAB 5
>> y = A(1:2,2:3)
y =
2 3
6 7
หากต้องการเฉพาะสมาชิกตั้งแต่คอลัมน์ที่สองไปจนถึงคอลัมน์สุดท้ายในแถวที่หนึ่งเท่านั้นให้ใช้คําสั่ง
ดังนี้
>> y = A(1,2:end)
y =
2 3 4
ตัวอย่างก่อนหน้านี้ล้วนแล้วแต่กําหนดช่วงของแถวหรือคอลัมน์ที่ต่อเนื่องกันทั้งสิ้น ในกรณีที่ต้องการ
ดึงสมาชิกในแถวหรือคอลัมน์ที่ไม่ติดกันออกมาหรือจะดึงซ้ํามากกว่าหนึ่งครั้ง เช่น ต้องการอ้างถึง
สมาชิกในคอลัมน์ที่หนึ่ง คอลัมน์ที่สี่ และคอลัมน์ที่สี่อีกครั้ง ให้ใช้คําสั่งดังนี้
>> y = A(:,[1 4 4])
y =
1 4 4
5 8 8
9 12 12
คําสั่งการลบแถวหรือคอลัมน์ของเมทริกซ์ก็น่าสนใจเช่นกัน และสามารถทําได้โดยใช้คําสั่งดังนี้
>> A(1,:) = [ ]
A =
5 6 7 8
9 10 11 12
คําสั่งข้างบนนี้เป็นการลบสมาชิกทั้งหมดในแถวที่หนึ่งของเมทริกซ์ A นั่นเอง
6 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า
และถ้าจะลบสมาชิกทั้งหมดในคอลัมน์ที่สี่ของเมทริกซ์ A ให้กระทําดังนี้
>> A(:,4) = [ ]
A =
5 6 7
9 10 11
ในโปรแกรม MATLAB การนําเมทริกซ์หลายชุดมาประกอบกันให้ได้เป็นเมทริกซ์ที่มีขนาดใหญ่ขึ้นก็
สะดวกมาก ยกตัวอย่างเช่น
>> A = [0 0; 1 1; 2 2];
>> B = [3 3; 4 4; 5 5];
>> C = [A B]
C =
0 0 3 3
1 1 4 4
2 2 5 5
เป็นคําสั่งการต่อเมทริกซ์ A และ B ในแนวนอนและได้เป็นเมทริกซ์ C ที่มีขนาดใหญ่ขึ้น สังเกตว่า
เครื่องหมาย “;” ที่ปิดท้ายคําสั่งในสองบรรทัดแรกเป็นการบอกโปรแกรม MATLAB ว่าไม่ต้อง
แสดงผลออกบนจอภาพ เครื่องหมายนี้เป็นประโยชน์มากหากเราไม่ต้องการเห็นผลลัพธ์ของคําสั่ง
บางบรรทัด สําหรับการต่อเมทริกซ์ในแนวตั้งก็สามารถกระทําได้เช่นกันดังนี้
>> C = [A;B]
C =
0 0
1 1
2 2
3 3
บทที่ 1 ความรู้พื้นฐาน MATLAB 7
4 4
5 5
คําสั่งการสร้างเวกเตอร์อีกรูปแบบหนึ่งที่เป็นประโยชน์และมีการใช้งานบ่อยครั้งมาก คือ การสร้าง
เวกเตอร์ที่สมาชิกมีค่าเพิ่มขึ้นหรือลดลงอย่างเป็นระบบ เช่น ต้องการสร้างเวกเตอร์ขนาด 1x1,000
โดยบรรจุตัวเลขจํานวนเต็มเรียงลําดับตั้งแต่ 1 ถึง 1,000 การสร้างตัวแปรดังกล่าวนี้ด้วยการพิมพ์
โดยตรงด้วยมือต้องใช้เวลานานมาก ในกรณีเช่นนี้ผู้ใช้สามารถพิมพ์คําสั่งสั้น ๆ ดังต่อไปนี้ได้ทันที
>> D = 1:1:1000;
ในที่นี้หากเราเจตนาใส่เครื่องหมาย “;” ปิดท้าย เพื่อมิให้โปรแกรม MATLAB แสดงผลค่าที่บรรจุอยู่
ในเวกเตอร์ D ซึ่งมีสมาชิกจํานวนมากถึง 1,000 ค่า คําสั่งในลักษณะนี้สามารถนํามาใช้งานได้อย่าง
กว้างขวาง เช่น ต้องการเวกเตอร์แถวที่บรรจุตัวเลขจํานวนคู่เรียงตั้งแต่ 10 ถึง 20 ให้ใช้คําสั่งดังนี้
>> D = 10:2:20
D =
10 12 14 16 18 20
หากต้องการเวกเตอร์แถวที่บรรจุตัวเลขเรียงจากมากไปน้อย เริ่มต้นตั้งแต่ 20 ไปจนถึง -20 โดย
ลดลงทีละ 5 ให้ใช้คําสั่งดังนี้
>> D = 20:-5:-20
D =
20 15 10 5 0 -5 -10 -15 -20
ในกรณีที่ตัวเลขที่เพิ่มขึ้นแต่ละครั้งมีค่าเท่ากับหนึ่งเราสามารถเขียนคําสั่งให้สั้นลงได้เป็น
>> D = 5:8
D =
5 6 7 8
8 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า
1.3 ฟังก์ชันพื้นฐานสําหรับการสร้างเมทริกซ์
หัวข้อที่ผ่านมากล่าวถึงการสร้างตัวแปรในรูปของเวกเตอร์หรือเมทริกซ์อย่างง่ายและ
ตรงไปตรงมา อย่างไรก็ตาม ในการประยุกต์ใช้งานโดยทั่วไปมักจะมีการสร้างเมทริกซ์ที่มีค่าเฉพาะ
หรือมีรูปลักษณ์ที่เป็นมาตรฐาน เช่น ต้องการสร้างเมทริกซ์ที่มีค่าเป็นศูนย์ทั้งหมดขนาด mxn โดย
m และ n มีขนาดใหญ่มาก หากสร้างเมทริกซ์ที่ว่านี้ด้วยวิธีการพิมพ์ค่าโดยตรงตามรูปแบบที่ได้
อธิบายในส่วนที่แล้วจะเสียเวลามากและอาจเกิดข้อผิดพลาดได้ง่าย ดังนั้น ใน MATLAB จึงได้เตรียม
ฟังก์ชันพื้นฐานจํานวนหนึ่งไว้สําหรับใช้งาน
ตารางที่ 1.1 ฟังก์ชันพื้นฐานสําหรับสร้างเมทริกซ์
zeros เมทริกซ์ที่มีสมาชิกเป็น 0 ทั้งหมด
ones เมทริกซ์ที่มีสมาชิกเป็น 1 ทั้งหมด
eye เมทริกซ์เอกลักษณ์ (identity matrix)
diag เมทริกซ์จัตุรัสที่มีค่าในแนวทแยงมุมตามที่กําหนด
triu เมทริกซ์ที่มีค่าเฉพาะในส่วนของสามเหลี่ยมด้านบน
tril เมทริกซ์ที่มีค่าเฉพาะในส่วนของสามเหลี่ยมด้านล่าง
rand เมทริกซ์ที่มีสมาชิกเป็นจํานวนสุ่ม
hilb เมทริกซ์ฮิลเบิร์ต (Hilbert matrix)
magic เมทริกซ์จัตุรัสที่มีผลรวมของค่าในแถว คอลัมน์และแนวทแยงมุมเท่ากัน
hadamard เมทริกซ์ Hadamard
vander เมทริกซ์ Vandermonde
toeplitz เมทริกซ์ Toeplitz
บทที่ 1 ความรู้พื้นฐาน MATLAB 9
ฟังก์ชัน zero(m,n)
ฟังก์ชัน zero(m,n) ให้กําเนิดเมทริกซ์ขนาด mxn ที่มีสมาชิกเป็นศูนย์ทั้งหมด ยกตัวอย่าง
เช่น
>> zeros(2,5)
ans =
0 0 0 0 0
0 0 0 0 0
ฟังก์ชัน ones(m,n)
ฟังก์ชัน ones(m,n) คล้ายคลึงกับคําสั่ง zero(m,n) มาก เพียงแต่เมทริกซ์ที่ได้จะมีสมาชิก
เป็นหนึ่งทั้งหมด ยกตัวอย่างเช่น
>> ones(3,4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
ฟังก์ชัน eye(n)
ฟังก์ชัน eye(n) ให้กําเนิดเมทริกซ์จัตุรัสที่มีสมาชิกเป็นศูนย์ทั้งหมดยกเว้นสมาชิกในแนว
ทแยงมุมที่มีค่าเป็นหนึ่ง ฉะนั้น เมทริกซ์ที่ได้คือเมทริกซ์เอกลักษณ์นั่นเอง ยกตัวอย่างเช่น
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
10 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า
แท้จริงแล้วฟังก์ชัน eye สามารถให้กําเนิดเมทริกซ์ที่ไม่ใช่เมทริกซ์จัตุรัสได้ด้วย การใช้งานเป็นดังนี้
>> eye(2,4)
ans =
1 0 0 0
0 1 0 0
สังเกตว่าฟังก์ชันสามารถมีรูปแบบการใช้ที่ต่างกันได้มากกว่าหนึ่งรูปแบบ โดยขึ้นอยู่กับจํานวนและ
รายละเอียดของอาร์กิวเมนต์ที่ป้อนให้แก่ฟังก์ชัน ใน MATLAB มีคําสั่ง help ที่ใช้สําหรับอธิบาย
รายละเอียดรูปแบบและการใช้งานของฟังก์ชัน เช่น เราต้องการทราบวิธีการใช้งานฟังก์ชัน eye ให้
พิมพ์คําสั่งดังนี้
>> help eye
EYE Identity matrix.
EYE(N) is the N-by-N identity matrix.
EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1's on
the diagonal and zeros elsewhere.
EYE(SIZE(A)) is the same size as A.
See also ONES, ZEROS, RAND, RANDN.
จะเห็นว่าฟังก์ชัน eye มีการใช้งานได้สองลักษณะคือ eye(n) และ eye(m,n) สําหรับฟังก์ชัน zeros
หรือ ones ก็เช่นเดียวกันมีรูปแบบการใช้งานได้หลายลักษณะ หากลองใช้คําสั่ง help เพื่อดู
วิธีการใช้ฟังก์ชัน zeros หรือ ones จะพบว่าฟังก์ชันทั้งสองสามารถใช้สร้างเมทริกซ์ที่มีมากกว่าสอง
มิติได้ ยกตัวอย่างเช่น

More Related Content

Viewers also liked

43040989[1]
43040989[1]43040989[1]
43040989[1]
IKHG
 
systems of linear equations & matrices
systems of linear equations & matricessystems of linear equations & matrices
systems of linear equations & matrices
Student
 
Unit viii
Unit viiiUnit viii
Unit viii
mrecedu
 

Viewers also liked (18)

43040989[1]
43040989[1]43040989[1]
43040989[1]
 
MATLAB - Aplication of Arrays and Matrices in Electrical Systems
MATLAB - Aplication of Arrays and Matrices in Electrical SystemsMATLAB - Aplication of Arrays and Matrices in Electrical Systems
MATLAB - Aplication of Arrays and Matrices in Electrical Systems
 
Dk
DkDk
Dk
 
43040989
4304098943040989
43040989
 
เมทริกซ์
เมทริกซ์เมทริกซ์
เมทริกซ์
 
Matrix
MatrixMatrix
Matrix
 
Unit 1 matrix
Unit 1 matrixUnit 1 matrix
Unit 1 matrix
 
Matrix1
Matrix1Matrix1
Matrix1
 
เมทริกซ์ง่ายจะตาย
เมทริกซ์ง่ายจะตายเมทริกซ์ง่ายจะตาย
เมทริกซ์ง่ายจะตาย
 
Math 1300: Section 4-6 Matrix Equations and Systems of Linear Equations
Math 1300: Section 4-6 Matrix Equations and Systems of Linear EquationsMath 1300: Section 4-6 Matrix Equations and Systems of Linear Equations
Math 1300: Section 4-6 Matrix Equations and Systems of Linear Equations
 
Addition matrix
Addition matrixAddition matrix
Addition matrix
 
เมทริกซ์...
เมทริกซ์...เมทริกซ์...
เมทริกซ์...
 
systems of linear equations & matrices
systems of linear equations & matricessystems of linear equations & matrices
systems of linear equations & matrices
 
Unit viii
Unit viiiUnit viii
Unit viii
 
ระบบสมการเชิงเส้นและเมทริกซ์
ระบบสมการเชิงเส้นและเมทริกซ์ระบบสมการเชิงเส้นและเมทริกซ์
ระบบสมการเชิงเส้นและเมทริกซ์
 
system linear equations and matrices
 system linear equations and matrices system linear equations and matrices
system linear equations and matrices
 
เมทริกซ์ (Matrix)
เมทริกซ์ (Matrix)เมทริกซ์ (Matrix)
เมทริกซ์ (Matrix)
 
Matrix53
Matrix53Matrix53
Matrix53
 

Similar to 9789740332985

บทนำ1
บทนำ1บทนำ1
บทนำ1
Ssab Sky
 
บทนำ
บทนำบทนำ
บทนำ
Ssab Sky
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
 

Similar to 9789740332985 (14)

บทนำ1
บทนำ1บทนำ1
บทนำ1
 
Mat lab2
Mat lab2Mat lab2
Mat lab2
 
ฺBasic vector algebra in 2 dimension and 3 dimension
ฺBasic vector algebra in 2 dimension and 3 dimensionฺBasic vector algebra in 2 dimension and 3 dimension
ฺBasic vector algebra in 2 dimension and 3 dimension
 
9789740328766
97897403287669789740328766
9789740328766
 
9789740328766
97897403287669789740328766
9789740328766
 
Week1 f end
Week1 f endWeek1 f end
Week1 f end
 
บทนำ
บทนำบทนำ
บทนำ
 
Excel2007
Excel2007Excel2007
Excel2007
 
Lesson 20
Lesson 20Lesson 20
Lesson 20
 
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
 
นาย ทรงพล สายทอง-58170105-กลุ่ม-01
นาย ทรงพล สายทอง-58170105-กลุ่ม-01นาย ทรงพล สายทอง-58170105-กลุ่ม-01
นาย ทรงพล สายทอง-58170105-กลุ่ม-01
 
Know1 3
Know1 3Know1 3
Know1 3
 
ลอการิทึม
ลอการิทึมลอการิทึม
ลอการิทึม
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 

More from CUPress (20)

9789740337737
97897403377379789740337737
9789740337737
 
9789740337560
97897403375609789740337560
9789740337560
 
9789740337478
97897403374789789740337478
9789740337478
 
9789740337270
97897403372709789740337270
9789740337270
 
9789740337102
97897403371029789740337102
9789740337102
 
9789740337096
97897403370969789740337096
9789740337096
 
9789740337072
97897403370729789740337072
9789740337072
 
9789740337027
97897403370279789740337027
9789740337027
 
9789740336914
97897403369149789740336914
9789740336914
 
9789740336907
97897403369079789740336907
9789740336907
 
9789740336686
97897403366869789740336686
9789740336686
 
9789740336457
97897403364579789740336457
9789740336457
 
9789740336440
97897403364409789740336440
9789740336440
 
9789740336389
97897403363899789740336389
9789740336389
 
9789740336280
97897403362809789740336280
9789740336280
 
9789740336365
97897403363659789740336365
9789740336365
 
9789740336303
97897403363039789740336303
9789740336303
 
9789740336242
97897403362429789740336242
9789740336242
 
9789740336235
97897403362359789740336235
9789740336235
 
9789740336099
97897403360999789740336099
9789740336099
 

9789740332985

  • 1. บทที่ 1 ความรู้พื้นฐาน MATLAB 1.1 บทนํา MATLAB เป็นโปรแกรมที่ได้รับการออกแบบมาเพื่อใช้ในการคํานวณทางคณิตศาสตร์ โดยเฉพาะอย่างยิ่งกับงานทางวิศวกรรมและวิทยาศาสตร์ โครงสร้างพื้นฐานการคํานวณของ โปรแกรม MATLAB อยู่ในรูปของเวกเตอร์หรือเมทริกซ์ ซึ่งก็เป็นที่มาของชื่อโปรแกรมด้วย กล่าวคือ MATLAB เป็นคําย่อของคําสองคําในภาษาอังกฤษคือ MATrix LABoratory จุดเด่นของโปรแกรม MATLAB คือการที่มีชุดคําสั่งจํานวนมากสําหรับใช้ในการประมวลผลข้อมูลที่บรรจุอยู่ในเมทริกซ์ ครอบคลุมทฤษฎีทางคณิตศาสตร์ทั้งที่เป็นพื้นฐานและการประยุกต์อย่างกว้างขวาง ที่สําคัญเรา สามารถใช้งานโปรแกรมในการแก้ปัญหาต่าง ๆ ได้อย่างรวดเร็วและมีประสิทธิภาพสูงมาก นอกจากนี้ MATLAB ยังได้พัฒนา GUI (Graphical User Interface) ที่เป็นระบบระเบียบทําให้การ สร้างโปรแกรมประยุกต์เฉพาะตามที่ผู้ใช้ต้องการสามารถทําได้โดยง่าย คุณสมบัติที่ดีเยี่ยมเหล่านี้ทํา ให้ในปัจจุบันมีการนํา MATLAB มาใช้เป็นเครื่องมือในการเรียนการสอนหรือนําไปประยุกต์ใช้กับ งานวิจัยอย่างแพร่หลาย การเรียนรู้วิธีใช้งานโปรแกรม MATLAB ในระดับพื้นฐานจัดว่าเป็นเรื่องที่ไม่ยากนัก และ โดยทั่วไปจะพบว่านิสิตนักศึกษาหรือนักวิชาการสามารถใช้งาน MATLAB ขั้นพื้นฐานได้ทันทีหลังจาก ที่ได้ทดลองใช้งานด้วยตนเองตามตัวอย่างที่อธิบายในบทที่ 1 นี้ ดังนั้น รูปแบบการอธิบายในบทนี้จึง เน้นการใช้ตัวอย่างเป็นหลัก เพื่อให้ผู้อ่านสามารถทราบถึงแนวทางการใช้ประโยชน์จากโปรแกรม MATLAB ได้อย่างรวดเร็วและมีประสิทธิผล แนวทางการอ่านเพื่อทําความเข้าใจในบทนี้จึง
  • 2. 2 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า ตรงไปตรงมา คือ ให้ผู้เรียนทดลองพิมพ์คําสั่งตามตัวอย่างไปทีละบรรทัดจนครบทั้งบท เพราะการ ลงมือพิมพ์คําสั่งเองเป็นปัจจัยหลักที่จะช่วยให้ผู้อ่านสามารถทําความคุ้นเคยและเข้าใจหลักการ พื้นฐานของ MATLAB ได้อย่างรวดเร็ว เนื้อหาที่จะกล่าวถึงต่อไปมีการเรียงลําดับดังนี้ การใช้คําสั่ง สําหรับการสร้างตัวแปรในรูปของเวกเตอร์หรือเมทริกซ์ ฟังก์ชันพื้นฐานสําหรับการสร้างเมทริกซ์ ฟังก์ชันการวาดกราฟ การบวกลบคูณหารอย่างง่าย และการกําหนดรูปแบบการแสดงผลตัวเลข 1.2 การสร้างตัวแปรเวกเตอร์และเมทริกซ์ การคํานวณต่าง ๆ ในโปรแกรม MATLAB อยู่บนพื้นฐานของตัวแปรที่กําหนดในรูปของ เวกเตอร์ (vector) และเมทริกซ์ (matrix) เป็นหลัก ดังนั้น การเรียนรู้โปรแกรม MATLAB เพื่อให้ สามารถใช้งานได้อย่างมีประสิทธิภาพ ผู้ใช้งานจําเป็นต้องเข้าใจถึงหลักการและวิธีการสร้างตัวแปร เหล่านี้ให้ถ่องแท้ก่อน ในลําดับแรกจะแสดงวิธีสร้างตัวแปร x ที่เป็นเวกเตอร์แถว (row vector) โดยใช้คําสั่ง ต่อไปนี้ >> x = [1 2 3 4] x = 1 2 3 4 สังเกตว่าสมาชิกหรือเอลิเมนต์ (element) แต่ละตัวในเวกเตอร์ x จะเขียนแยกจากกันโดยใช้ช่องว่าง หรืออาจจะใช้เครื่องหมาย “,” ได้ด้วยเช่นกัน หากต้องการเมทริกซ์ทรานส์โพสของ x ก็สามารถทํา ได้โดยง่าย ดังนี้ >> y = x' y = 1 2 3 4 ซึ่งจะได้ตัวแปร y ขึ้นมาใหม่ที่เป็นเมทริกซ์ทรานส์โพสของ x ดังที่แสดงข้างบน
  • 3. บทที่ 1 ความรู้พื้นฐาน MATLAB 3 หากต้องการกําหนดเมทริกซ์ที่มีขนาด 3x4 ขึ้นมาใช้งาน ให้กระทําดังนี้ >> A = [1 2 3 4; 5 6 7 8; 9 10 11 12] A = 1 2 3 4 5 6 7 8 9 10 11 12 สังเกตว่าเครื่องหมาย “;” ใช้สําหรับระบุว่าเป็นจุดสิ้นสุดของแต่ละแถว ถึงตรงนี้เราอาจจะใช้คําสั่ง who หรือ whos เพื่อขอดูตัวแปรทั้งหมดที่ได้มีการสร้างขึ้นในหน้าต่างที่ใช้งานอยู่หรือที่เรียกว่า พื้นที่ทํางาน (workspace) หากใช้คําสั่ง who ก็จะได้ผลเป็น >> who Your variables are: A x y หรือถ้าต้องการทราบขนาดหรือหน่วยความจําของตัวแปรแต่ละตัวด้วย ให้ใช้คําสั่ง whos แทน >> whos Name Size Bytes Class A 3x4 96 double array x 1x4 32 double array y 4x1 32 double array Grand total is 20 elements using 160 bytes ในกรณีที่ต้องการทราบขนาดของตัวแปรตัวใดตัวหนึ่ง ให้ใช้คําสั่ง size(x) ยกตัวอย่างเช่น >> size(x) ans = 1 4
  • 4. 4 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า ซึ่งบอกเราว่าเมทริกซ์ x มีขนาดเท่ากับ 1x4 คือมีเพียงแถวเดียวและมีสี่คอลัมน์ สังเกตว่าคําสั่งนี้ไม่มี การนําค่าของฟังก์ชัน size(x) ไปใส่ลงในตัวแปรใด ๆ ดังในกรณีก่อนหน้า ในกรณีเช่นนี้ MATLAB จะบรรจุผลลัพธ์ที่ได้ลงในตัวแปรที่มีชื่อเฉพาะว่า ans เสมอ เราสามารถอ้างถึงหรือกําหนดค่าให้แก่สมาชิกแต่ละตัวในเมทริกซ์ได้ดังนี้ >> x = A(2,3) x = 7 คําสั่งนี้ให้นําค่าของสมาชิกในแถวที่สองและคอลัมน์ที่สามของเมทริกซ์ A ไปบรรจุลงในตัวแปร x ที่ ได้ประกาศขึ้นใหม่ แต่หากต้องการสมาชิกทั้งแถวจากเมทริกซ์ A เช่น ต้องการสมาชิกทั้งหมดในแถวที่ 3 ไปเก็บลงใน เวกเตอร์ y ที่กําหนดขึ้นมาใหม่ให้สั่งดังนี้ >> y = A(3,:) y = 9 10 11 12 สังเกตว่ามีการใช้เครื่องหมาย “:” เพื่อระบุช่วงของคอลัมน์ว่าให้นําสมาชิกของทุกคอลัมน์มาใช้ เพื่อให้เห็นภาพการใช้งานเครื่องหมาย “:” ที่ชัดเจนขึ้น จะยกตัวอย่างคําสั่งต่อไปนี้ซึ่งดึงสมาชิกใน แถวที่สองของเมทริกซ์ A เฉพาะในคอลัมน์ที่ 1 ถึง 3 เท่านั้น >> y = A(2,1:3) y = 5 6 7 จะเห็นว่าตัวเลขที่อยู่ก่อนหน้าและหลังเครื่องหมาย “:” เป็นตัวระบุช่วงของคอลัมน์ที่ต้องการ สําหรับตัวอย่างที่ซับซ้อนขึ้นอีกเล็กน้อยก็คือการดึงสมาชิกในแถวที่หนึ่งและสองโดยที่สนใจเฉพาะ สมาชิกในคอลัมน์ที่สองและสามเท่านั้น ซึ่งจะใช้คําสั่งดังนี้
  • 5. บทที่ 1 ความรู้พื้นฐาน MATLAB 5 >> y = A(1:2,2:3) y = 2 3 6 7 หากต้องการเฉพาะสมาชิกตั้งแต่คอลัมน์ที่สองไปจนถึงคอลัมน์สุดท้ายในแถวที่หนึ่งเท่านั้นให้ใช้คําสั่ง ดังนี้ >> y = A(1,2:end) y = 2 3 4 ตัวอย่างก่อนหน้านี้ล้วนแล้วแต่กําหนดช่วงของแถวหรือคอลัมน์ที่ต่อเนื่องกันทั้งสิ้น ในกรณีที่ต้องการ ดึงสมาชิกในแถวหรือคอลัมน์ที่ไม่ติดกันออกมาหรือจะดึงซ้ํามากกว่าหนึ่งครั้ง เช่น ต้องการอ้างถึง สมาชิกในคอลัมน์ที่หนึ่ง คอลัมน์ที่สี่ และคอลัมน์ที่สี่อีกครั้ง ให้ใช้คําสั่งดังนี้ >> y = A(:,[1 4 4]) y = 1 4 4 5 8 8 9 12 12 คําสั่งการลบแถวหรือคอลัมน์ของเมทริกซ์ก็น่าสนใจเช่นกัน และสามารถทําได้โดยใช้คําสั่งดังนี้ >> A(1,:) = [ ] A = 5 6 7 8 9 10 11 12 คําสั่งข้างบนนี้เป็นการลบสมาชิกทั้งหมดในแถวที่หนึ่งของเมทริกซ์ A นั่นเอง
  • 6. 6 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า และถ้าจะลบสมาชิกทั้งหมดในคอลัมน์ที่สี่ของเมทริกซ์ A ให้กระทําดังนี้ >> A(:,4) = [ ] A = 5 6 7 9 10 11 ในโปรแกรม MATLAB การนําเมทริกซ์หลายชุดมาประกอบกันให้ได้เป็นเมทริกซ์ที่มีขนาดใหญ่ขึ้นก็ สะดวกมาก ยกตัวอย่างเช่น >> A = [0 0; 1 1; 2 2]; >> B = [3 3; 4 4; 5 5]; >> C = [A B] C = 0 0 3 3 1 1 4 4 2 2 5 5 เป็นคําสั่งการต่อเมทริกซ์ A และ B ในแนวนอนและได้เป็นเมทริกซ์ C ที่มีขนาดใหญ่ขึ้น สังเกตว่า เครื่องหมาย “;” ที่ปิดท้ายคําสั่งในสองบรรทัดแรกเป็นการบอกโปรแกรม MATLAB ว่าไม่ต้อง แสดงผลออกบนจอภาพ เครื่องหมายนี้เป็นประโยชน์มากหากเราไม่ต้องการเห็นผลลัพธ์ของคําสั่ง บางบรรทัด สําหรับการต่อเมทริกซ์ในแนวตั้งก็สามารถกระทําได้เช่นกันดังนี้ >> C = [A;B] C = 0 0 1 1 2 2 3 3
  • 7. บทที่ 1 ความรู้พื้นฐาน MATLAB 7 4 4 5 5 คําสั่งการสร้างเวกเตอร์อีกรูปแบบหนึ่งที่เป็นประโยชน์และมีการใช้งานบ่อยครั้งมาก คือ การสร้าง เวกเตอร์ที่สมาชิกมีค่าเพิ่มขึ้นหรือลดลงอย่างเป็นระบบ เช่น ต้องการสร้างเวกเตอร์ขนาด 1x1,000 โดยบรรจุตัวเลขจํานวนเต็มเรียงลําดับตั้งแต่ 1 ถึง 1,000 การสร้างตัวแปรดังกล่าวนี้ด้วยการพิมพ์ โดยตรงด้วยมือต้องใช้เวลานานมาก ในกรณีเช่นนี้ผู้ใช้สามารถพิมพ์คําสั่งสั้น ๆ ดังต่อไปนี้ได้ทันที >> D = 1:1:1000; ในที่นี้หากเราเจตนาใส่เครื่องหมาย “;” ปิดท้าย เพื่อมิให้โปรแกรม MATLAB แสดงผลค่าที่บรรจุอยู่ ในเวกเตอร์ D ซึ่งมีสมาชิกจํานวนมากถึง 1,000 ค่า คําสั่งในลักษณะนี้สามารถนํามาใช้งานได้อย่าง กว้างขวาง เช่น ต้องการเวกเตอร์แถวที่บรรจุตัวเลขจํานวนคู่เรียงตั้งแต่ 10 ถึง 20 ให้ใช้คําสั่งดังนี้ >> D = 10:2:20 D = 10 12 14 16 18 20 หากต้องการเวกเตอร์แถวที่บรรจุตัวเลขเรียงจากมากไปน้อย เริ่มต้นตั้งแต่ 20 ไปจนถึง -20 โดย ลดลงทีละ 5 ให้ใช้คําสั่งดังนี้ >> D = 20:-5:-20 D = 20 15 10 5 0 -5 -10 -15 -20 ในกรณีที่ตัวเลขที่เพิ่มขึ้นแต่ละครั้งมีค่าเท่ากับหนึ่งเราสามารถเขียนคําสั่งให้สั้นลงได้เป็น >> D = 5:8 D = 5 6 7 8
  • 8. 8 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า 1.3 ฟังก์ชันพื้นฐานสําหรับการสร้างเมทริกซ์ หัวข้อที่ผ่านมากล่าวถึงการสร้างตัวแปรในรูปของเวกเตอร์หรือเมทริกซ์อย่างง่ายและ ตรงไปตรงมา อย่างไรก็ตาม ในการประยุกต์ใช้งานโดยทั่วไปมักจะมีการสร้างเมทริกซ์ที่มีค่าเฉพาะ หรือมีรูปลักษณ์ที่เป็นมาตรฐาน เช่น ต้องการสร้างเมทริกซ์ที่มีค่าเป็นศูนย์ทั้งหมดขนาด mxn โดย m และ n มีขนาดใหญ่มาก หากสร้างเมทริกซ์ที่ว่านี้ด้วยวิธีการพิมพ์ค่าโดยตรงตามรูปแบบที่ได้ อธิบายในส่วนที่แล้วจะเสียเวลามากและอาจเกิดข้อผิดพลาดได้ง่าย ดังนั้น ใน MATLAB จึงได้เตรียม ฟังก์ชันพื้นฐานจํานวนหนึ่งไว้สําหรับใช้งาน ตารางที่ 1.1 ฟังก์ชันพื้นฐานสําหรับสร้างเมทริกซ์ zeros เมทริกซ์ที่มีสมาชิกเป็น 0 ทั้งหมด ones เมทริกซ์ที่มีสมาชิกเป็น 1 ทั้งหมด eye เมทริกซ์เอกลักษณ์ (identity matrix) diag เมทริกซ์จัตุรัสที่มีค่าในแนวทแยงมุมตามที่กําหนด triu เมทริกซ์ที่มีค่าเฉพาะในส่วนของสามเหลี่ยมด้านบน tril เมทริกซ์ที่มีค่าเฉพาะในส่วนของสามเหลี่ยมด้านล่าง rand เมทริกซ์ที่มีสมาชิกเป็นจํานวนสุ่ม hilb เมทริกซ์ฮิลเบิร์ต (Hilbert matrix) magic เมทริกซ์จัตุรัสที่มีผลรวมของค่าในแถว คอลัมน์และแนวทแยงมุมเท่ากัน hadamard เมทริกซ์ Hadamard vander เมทริกซ์ Vandermonde toeplitz เมทริกซ์ Toeplitz
  • 9. บทที่ 1 ความรู้พื้นฐาน MATLAB 9 ฟังก์ชัน zero(m,n) ฟังก์ชัน zero(m,n) ให้กําเนิดเมทริกซ์ขนาด mxn ที่มีสมาชิกเป็นศูนย์ทั้งหมด ยกตัวอย่าง เช่น >> zeros(2,5) ans = 0 0 0 0 0 0 0 0 0 0 ฟังก์ชัน ones(m,n) ฟังก์ชัน ones(m,n) คล้ายคลึงกับคําสั่ง zero(m,n) มาก เพียงแต่เมทริกซ์ที่ได้จะมีสมาชิก เป็นหนึ่งทั้งหมด ยกตัวอย่างเช่น >> ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1 ฟังก์ชัน eye(n) ฟังก์ชัน eye(n) ให้กําเนิดเมทริกซ์จัตุรัสที่มีสมาชิกเป็นศูนย์ทั้งหมดยกเว้นสมาชิกในแนว ทแยงมุมที่มีค่าเป็นหนึ่ง ฉะนั้น เมทริกซ์ที่ได้คือเมทริกซ์เอกลักษณ์นั่นเอง ยกตัวอย่างเช่น >> eye(3) ans = 1 0 0 0 1 0 0 0 1
  • 10. 10 MATLAB การประยุกต์ใช้งานทางวิศวกรรมไฟฟ้า แท้จริงแล้วฟังก์ชัน eye สามารถให้กําเนิดเมทริกซ์ที่ไม่ใช่เมทริกซ์จัตุรัสได้ด้วย การใช้งานเป็นดังนี้ >> eye(2,4) ans = 1 0 0 0 0 1 0 0 สังเกตว่าฟังก์ชันสามารถมีรูปแบบการใช้ที่ต่างกันได้มากกว่าหนึ่งรูปแบบ โดยขึ้นอยู่กับจํานวนและ รายละเอียดของอาร์กิวเมนต์ที่ป้อนให้แก่ฟังก์ชัน ใน MATLAB มีคําสั่ง help ที่ใช้สําหรับอธิบาย รายละเอียดรูปแบบและการใช้งานของฟังก์ชัน เช่น เราต้องการทราบวิธีการใช้งานฟังก์ชัน eye ให้ พิมพ์คําสั่งดังนี้ >> help eye EYE Identity matrix. EYE(N) is the N-by-N identity matrix. EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1's on the diagonal and zeros elsewhere. EYE(SIZE(A)) is the same size as A. See also ONES, ZEROS, RAND, RANDN. จะเห็นว่าฟังก์ชัน eye มีการใช้งานได้สองลักษณะคือ eye(n) และ eye(m,n) สําหรับฟังก์ชัน zeros หรือ ones ก็เช่นเดียวกันมีรูปแบบการใช้งานได้หลายลักษณะ หากลองใช้คําสั่ง help เพื่อดู วิธีการใช้ฟังก์ชัน zeros หรือ ones จะพบว่าฟังก์ชันทั้งสองสามารถใช้สร้างเมทริกซ์ที่มีมากกว่าสอง มิติได้ ยกตัวอย่างเช่น