ฟังก์ชันซ้อนเป็นฟังก์ชันที่สร้างขึ้นภายในฟังก์ชันอื่นใน MATLAB สิ่งพิเศษเกี่ยวกับฟังก์ชันที่ซ้อนกันคือสามารถใช้และเปลี่ยนแปลงตัวแปรที่กำหนดไว้ในฟังก์ชันพาเรนต์ได้
ไวยากรณ์
ฟังก์ชันที่ซ้อนกันเหล่านี้ใน MATLAB สามารถเข้าถึงตัวแปรฟังก์ชันหลักได้อย่างง่ายดาย นี่คือไวยากรณ์สำหรับกำหนดฟังก์ชันที่ซ้อนกันใน MATLAB:
การทำงาน พ่อแม่
แจกจ่าย ( 'ฟังก์ชั่นผู้ปกครอง' )
รัง fx
การทำงาน รัง fx
แจกจ่าย ( 'ฟังก์ชันซ้อน' )
จบ
จบ
ตัวอย่างโค้ด
ด้านล่างนี้เราได้ให้รหัส MATLAB ของฟังก์ชันที่ซ้อนกัน:
การทำงาน parentFunction
x = 10 ;
ฟังก์ชันที่ซ้อนกัน1 ( )
% ฟังก์ชันซ้อน1
การทำงาน ฟังก์ชันที่ซ้อนกัน1
แจกจ่าย ( 'ภายในซ้อนฟังก์ชัน 1' ) ;
แจกจ่าย ( x ) ; % การเข้าถึงตัวแปร x จากฟังก์ชันพาเรนต์
และ = ยี่สิบ ;
ฟังก์ชันซ้อน2 ( )
% ฟังก์ชันซ้อน2
การทำงาน ฟังก์ชันซ้อน2
แจกจ่าย ( 'ภายในซ้อนฟังก์ชัน 2' ) ;
แจกจ่าย ( x ) ; % การเข้าถึงตัวแปร x จากพาเรนต์และฟังก์ชันซ้อน 1
แจกจ่าย ( และ ) ; % การเข้าถึงตัวแปร y จากฟังก์ชันซ้อน 1
จบ
จบ
จบ
ด้านบน MATLAB กำหนดชื่อฟังก์ชันหลักเป็น parentFunction และกำหนดฟังก์ชันที่ซ้อนกันสองฟังก์ชัน: ฟังก์ชันที่ซ้อนกัน1 และ ฟังก์ชันซ้อน2 .
NestedFunction1 แสดงค่าของตัวแปร x จากฟังก์ชันพาเรนต์และกำหนดตัวแปร y อื่น หลังจากนั้นก็จะเรียกชื่อฟังก์ชันnestedFunction2
nestedFunction2 แสดงค่า x จากทั้ง parent function และ nestedFunction1 รวมถึงค่า y จาก nestedFunction1 หลังจากดำเนินการโค้ด เอาต์พุตจะแสดงข้อความจากฟังก์ชันที่ซ้อนกันทั้งสอง พร้อมด้วยค่า x และ y
การแบ่งปันตัวแปรจากฟังก์ชันที่ซ้อนกันไปยังฟังก์ชันหลัก
ใน MATLAB เรายังสามารถกำหนดตัวแปรและแบ่งปันจากซ้อนไปยังฟังก์ชันหลัก
การทำงาน พ่อแม่ซ้อนกัน
การทำงาน ซ้อนกัน
x = 10 ;
จบ
x = x+ 1 ;
แจกจ่าย ( x ) ;
จบ
รหัส MATLAB นี้กำหนดฟังก์ชันที่เรียกว่าพาเรนต์ที่มีฟังก์ชันซ้อนที่เรียกว่า ซ้อนกัน . รหัสกำหนดค่า 10 ให้กับตัวแปร x ใน nestedfunc จากนั้นเพิ่มขึ้นทีละ 1 ในฟังก์ชันพาเรนต์และแสดงผลลัพธ์
การซ้อนหลายฟังก์ชันภายใต้ฟังก์ชันพาเรนต์เดียวกัน
ใน MATLAB เรายังสามารถรวมหลายฟังก์ชันไว้ในฟังก์ชันพาเรนต์หลักเดียว
% หลายฟังก์ชันภายใต้ฟังก์ชันหลักเดียวกันการทำงาน พ่อแม่
ฟังก์ชันที่ซ้อนกัน1
Nestedfunc2
การทำงาน ฟังก์ชันที่ซ้อนกัน1
fprintf ( 'linuxhint.com\n' ) ;
จบ
การทำงาน Nestedfunc2
fprintf ( 'ยินดีต้อนรับสู่ลินุกซ์' ) ;
จบ
จบ
โค้ด MATLAB นี้กำหนดฟังก์ชันที่เรียกว่าพาเรนต์ซึ่งมีฟังก์ชันที่ซ้อนกันสองฟังก์ชัน:nestedfunc1 และnestedfunc2 เมื่อมีการเรียกใช้ฟังก์ชันพาเรนต์ ฟังก์ชันดังกล่าวจะเรียกใช้งานฟังก์ชันที่ซ้อนกันทั้งสองฟังก์ชัน Nestedfunc1 พิมพ์ข้อความ Linuxhint.com และ Nestedfunc2 พิมพ์ข้อความ “Welcome To Linuxhint”
การแบ่งปันตัวแปรระหว่างฟังก์ชันที่ซ้อนกัน
ใน MATLAB เรายังสามารถกำหนดและแบ่งปันตัวแปรฟังก์ชันพาเรนต์เดี่ยวกับฟังก์ชันที่ซ้อนกันสองฟังก์ชัน
% สองฟังก์ชันที่ซ้อนกันภายใต้ฟังก์ชันพาเรนต์เดียวกันการทำงาน พ่อแม่
x = 5
ซ้อน1
ซ้อน2
การทำงาน ซ้อน1
x = x* 2 ;
จบ
การทำงาน ซ้อน2
x = x+ 5 ;
จบ
แจกจ่าย ( x )
จบ
โค้ด MATLAB นี้กำหนดฟังก์ชันชื่อพาเรนต์ที่ประกาศตัวแปร x ด้วยค่า 5 จากนั้นจะประกอบด้วยฟังก์ชันที่ซ้อนกันสองฟังก์ชัน: ซ้อน1 และซ้อน2
ใน Nested1 ค่าของ x จะคูณด้วย 2 แต่เนื่องจาก x ไม่ได้ถูกส่งผ่านอย่างชัดเจนเป็นอาร์กิวเมนต์ จึงสร้างตัวแปรโลคัล x ใหม่ภายใน Nested1 แทนการแก้ไขตัวแปร x ภายนอก
ใน Nested2 ค่าของ x จะเพิ่มขึ้น 5 และสร้างตัวแปรภายในเครื่องใหม่ x ภายใน Nested2
หลังจากเรียกใช้งานฟังก์ชันที่ซ้อนกัน โค้ดจะแสดงค่าของตัวแปร x ภายนอก ซึ่งยังคงไม่เปลี่ยนแปลงที่ 5 เนื่องจากการแก้ไขที่ทำในฟังก์ชันที่ซ้อนกันจะส่งผลต่อตัวแปรเฉพาะที่ภายในฟังก์ชันเหล่านั้นเท่านั้น และไม่มีผลกับตัวแปรภายนอก
บทสรุป
ฟังก์ชันที่ซ้อนกันใน MATLAB สามารถจัดระเบียบโค้ด ปรับปรุงการใช้ซ้ำ และปรับปรุงประสิทธิภาพ อนุญาตให้ฟังก์ชันเข้าถึงและแก้ไขตัวแปรที่กำหนดในฟังก์ชันหลัก ทำให้การห่อหุ้มโค้ดดีขึ้น ฟังก์ชันที่ซ้อนกันช่วยลดความต้องการตัวแปรส่วนกลางหรือการส่งผ่านหลายอาร์กิวเมนต์ระหว่างฟังก์ชัน บทความนี้ครอบคลุมตัวอย่างต่างๆ ของฟังก์ชันที่ซ้อนกันใน MATLAB