วิธีใช้ Nested Functions ใน MATLAB

Withi Chi Nested Functions Ni Matlab



ฟังก์ชันซ้อนใน MATLAB สามารถกำหนดฟังก์ชันภายในฟังก์ชันอื่นๆ สิ่งนี้มีประโยชน์สำหรับการจัดระเบียบโค้ด ทำให้โค้ดสามารถนำมาใช้ซ้ำได้มากขึ้น และปรับปรุงประสิทธิภาพ

ฟังก์ชันซ้อนเป็นฟังก์ชันที่สร้างขึ้นภายในฟังก์ชันอื่นใน 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