ค้นหาเว็บไซต์

วนซ้ำใน 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 อนุญาตให้ใช้ลูปประเภทต่างๆ ในโค้ดเพื่อจัดการข้อกำหนดในการวนซ้ำ รวมถึง: สำหรับลูป ในขณะที่ลูป และลูปที่ซ้อนกัน นอกจากนี้ยังมีคำสั่งควบคุมลูปเฉพาะเพื่อควบคุมการทำงานของลูปเหล่านี้ การสร้างลูปสำหรับคำสั่งที่ซ้ำกันเป็นวิธีที่ดีในการย่อโค้ดสุดท้ายให้สั้นลง

บทความที่เกี่ยวข้อง