วนซ้ำใน Matlab | เรียนรู้ลูปประเภทต่างๆ ใน Matlab
ข้อมูลเบื้องต้นเกี่ยวกับลูปใน Matlab
ในบทความนี้ เราจะมาเรียนรู้เกี่ยวกับ Loops ใน Matlab เดิมทีพัฒนาขึ้นโดยเน้นที่การจำลองทางคณิตศาสตร์ MATLAB เหมาะสำหรับการทำงานกับข้อมูลตัวเลขคงที่ในเวกเตอร์และเมทริกซ์ แต่ตอนนี้สามารถอ่านข้อมูลจากไฟล์ธรรมดา ฐานข้อมูล ที่เก็บข้อมูลบนคลาวด์ ฮาร์ดแวร์การรับข้อมูล และแม้แต่ฟีดข้อมูลทางการเงินแบบเรียลไทม์ MATLAB มีความสามารถอย่างมากในสาขาวิทยาศาสตร์ข้อมูล และปัจจุบันมีการนำไปใช้อย่างแพร่หลายในอุตสาหกรรมต่างๆ มากมาย
ในภาษาโปรแกรมคอมพิวเตอร์ทุกภาษา มีคำสั่ง 'loop' บางส่วนที่ใช้สำหรับดำเนินการคำสั่งซ้ำๆ โดยเฉพาะอย่างยิ่ง LOOPS อนุญาตให้ผู้เขียนโค้ดเขียนโค้ดที่สั้นกว่าโดยข้ามชุดโค้ดที่ทำซ้ำบางชุดลงในลูปแบบมีเงื่อนไข โดยพื้นฐานแล้ว การวนซ้ำคือชุดคำสั่งที่ดำเนินการซ้ำๆ จนกว่าจะถึงเงื่อนไขที่กำหนดหรือตราบใดที่ตรงตามเงื่อนไขที่กำหนด
วนซ้ำใน MATLAB
MATLAB ใช้สำหรับลูปและในขณะที่ลูป นอกจากนี้ยังมีลูปแบบซ้อน ซึ่งอนุญาตให้ใช้ลูป for หรือ while ภายในลูปได้
สำหรับห่วง
FOR loop ถูกใช้เมื่อทราบจำนวนการวนซ้ำที่ชุดคำสั่งจะถูกดำเนินการ ดังนั้นจึงใช้เพื่อรันโค้ดซ้ำ ๆ ตราบใดที่ตรงตามเงื่อนไขบางประการ เงื่อนไขนี้ถูกกำหนดไว้ที่จุดเริ่มต้นของลูป FOR หรือที่เรียกว่าเป็นการเริ่มต้นของลูป FOR ไวยากรณ์ของ for loop ใน MATLAB เป็นดังนี้:
ไวยากรณ์:
for index = value
…
program statements
… ;
endค่าสามารถเป็นหนึ่งในรูปแบบต่อไปนี้:
1. ค่าเริ่มต้น: มูลค่าสุดท้าย
เพิ่มตัวแปรดัชนีจากค่าเริ่มต้นเป็นค่าสิ้นสุด 1 และทำซ้ำการดำเนินการคำสั่งโปรแกรมจนกว่าดัชนีจะมากกว่าค่าสิ้นสุด
for a = 10:20
fprintf(‘value of a: %d\n’, a);
endเอาต์พุต:
2. ค่าเริ่มต้น:ขั้นตอน:มูลค่าสิ้นสุด:
เพิ่มดัชนีตามขั้นตอนค่าในการวนซ้ำแต่ละครั้ง หรือลดลงเมื่อขั้นตอนเป็นค่าลบ
รหัส:
for a = 1.0: -0.1: 0.0
disp(a);
endเอาต์พุต:
3. วาลอาร์เรย์
สร้างดัชนีเวกเตอร์คอลัมน์จากคอลัมน์ต่อเนื่องของอาร์เรย์ valArray ในการวนซ้ำแต่ละครั้ง ลูปดำเนินการเป็นเวลา n ครั้ง และ n คือจำนวนคอลัมน์ของ valArray ซึ่งกำหนดโดย numel(valArray, 1, :) อินพุต valArray อาจเป็นประเภทข้อมูล MATLAB ใดก็ได้ รวมถึงอาร์เรย์เซลล์ สตริง หรือโครงสร้าง
รหัส:
for a = [12, 14, 52, 61, 72]
disp(a);
endเอาต์พุต:
ในขณะที่วนซ้ำ
while loop จะดำเนินการคำสั่งซ้ำ ๆ ตราบใดที่เงื่อนไขที่ระบุเป็นจริง ไวยากรณ์ของ while loop มีดังนี้
ไวยากรณ์:
while <condition>
…
program statement
… ;
endเงื่อนไขจะเป็นจริงเมื่อผลลัพธ์ไม่เป็นโมฆะและมีองค์ประกอบที่ไม่ใช่ศูนย์ทั้งหมด (อาจเป็นตรรกะหรือตัวเลขจริงก็ได้) มิฉะนั้นเงื่อนไขจะเป็นเท็จ ค่าเปรียบเทียบสำหรับเงื่อนไขถูกกำหนดไว้ก่อนที่จะเริ่มลูป while และเงื่อนไขการเปรียบเทียบจะถูกตั้งค่าในการเริ่มต้นลูป while
ตัวอย่างเช่น ให้เราใช้เงื่อนไขเดียวกับตัวอย่าง for loop แรก สังเกตว่าโครงสร้างเปลี่ยนแปลงอย่างไรโดยใช้ while loop
รหัส:
a = 10;
while ( a < 20 )
fprintf(‘value of a: %d\n’, a);
a = a+1;
endในที่นี้ค่าเริ่มต้นของ 'a' จะถูกตั้งค่าก่อนเริ่มลูป และเงื่อนไขที่ตั้งไว้ในลูปคือ 'a' ควรน้อยกว่า 20 จากนั้น 'a' จะเพิ่มขึ้นทีละ 1 และลูปจะวนซ้ำตราบเท่าที่ < 20. นี่คือลักษณะการแสดงผลลัพธ์ แตกต่างจากผลลัพธ์ของ for a loop
เอาต์พุต:
เนื่องจากที่ a=20 เงื่อนไขจะเป็นเท็จ โค้ดภายในลูปจึงไม่ถูกดำเนินการ ดังนั้นเอาต์พุตจะแสดงเฉพาะค่า a ตั้งแต่ 10 ถึง 19 เท่านั้น
ลูปซ้อน
นี่หมายถึงการใช้ลูปหนึ่งภายในอีกวงหนึ่ง มันอาจจะใช้อันหนึ่ง for loop ภายในอีกอันหนึ่ง for loop หรืออันหนึ่ง while loop ข้างในอีกอันหนึ่งในขณะที่สร้างคำสั่งผสม การวนซ้ำผลลัพธ์จะต้องเป็นไปตามเงื่อนไขสองประการ นั่นคือ เงื่อนไขในลูปด้านนอกจะถูกตรวจสอบก่อน และหากเป็นจริง เงื่อนไขในลูปที่ซ้อนกันที่สองจะถูกตรวจสอบ ซึ่งช่วยให้โปรแกรมเมอร์สามารถเขียนโปรแกรมตามเงื่อนไขที่ซับซ้อนได้มากกว่าการทดสอบตัวเลขหรือบูลีนแบบธรรมดา
เช่น โปรแกรมให้แสดงจำนวนเฉพาะทั้งหมดตั้งแต่ 1 ถึง 100 จะเป็นดังนี้
รหัส:
for i = 2:100
for j = 2:100
if (~mod(i,j))
break;
end
end
if (j > (i/j))
fprintf(‘%d is prime\n’, i);
end
endเอาต์พุต:
..และต่อไปเรื่อยๆ จนถึงเลขเฉพาะ 97
คำสั่งควบคุมแบบวนซ้ำใน Matlab
คำสั่งควบคุมคือการรวมกันของเงื่อนไขที่ควบคุมเนื้อหาของลูปเพื่อดำเนินการจนกว่าเงื่อนไขที่ระบุจะกลายเป็นเท็จ คำสั่งควบคุมยังกำหนดทิศทางไวยากรณ์ของลูปด้วย ตัวอย่างเช่น ในลูป while ค่าเปรียบเทียบจะถูกกำหนดค่าก่อนที่ลูปจะเริ่มต้น ในขณะที่ในลูป for เงื่อนไขของค่าจะถูกกำหนดเมื่อเริ่มต้นลูป ในคำสั่ง for
สิ่งสำคัญที่สุดคือ คำสั่งควบคุมลูปใช้เพื่อควบคุมการดำเนินการของลูปหรือเพื่อเปลี่ยนการดำเนินการจากลำดับปกติของคำสั่ง MATLAB รองรับคำสั่งควบคุมลูปเฉพาะสองคำสั่ง ได้แก่ คำสั่ง 'break' และคำสั่ง 'continue' คำสั่งเหล่านี้ใช้ในภาษาโปรแกรมอื่นๆ เช่นกัน
งบแบ่ง
คำสั่ง break ยุติการดำเนินการของ for หรือ while loop คำสั่งในลูปที่เขียนหลังจากคำสั่งแบ่งถูกข้าม/ไม่ได้ดำเนินการ ในกรณีของลูปที่ซ้อนกัน ให้แยกทางออกจากลูปที่พบเท่านั้น การควบคุมจะส่งผ่านไปยังคำสั่งหลังจากสิ้นสุดการวนซ้ำ
คำชี้แจงต่อไป
คำสั่ง Continue ใช้สำหรับควบคุมการวนซ้ำครั้งถัดไป คำสั่ง Continue ทำงานเทียบได้กับคำสั่งแบ่ง แทนที่จะบังคับให้ยุติ 'ดำเนินการต่อ' จะข้ามโค้ดใด ๆ ที่อยู่ระหว่างนั้นและบังคับให้ดำเนินการวนซ้ำครั้งถัดไป
บทสรุป
MATLAB อนุญาตให้ใช้ลูปประเภทต่างๆ ในโค้ดเพื่อจัดการข้อกำหนดในการวนซ้ำ รวมถึง: สำหรับลูป ในขณะที่ลูป และลูปที่ซ้อนกัน นอกจากนี้ยังมีคำสั่งควบคุมลูปเฉพาะเพื่อควบคุมการทำงานของลูปเหล่านี้ การสร้างลูปสำหรับคำสั่งที่ซ้ำกันเป็นวิธีที่ดีในการย่อโค้ดสุดท้ายให้สั้นลง







