English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
الدالة هي مجموعة من الأوامر التي تنفذ مهام معينة. في MATLAB، يتم تعريف الدالة في ملف منفرد. يجب أن يكون اسم الملف واسم الدالة نفسه.
تقوم الدالة بتعديل المتغيرات في مساحتها الخاصة (تسمى أيضًا المساحة المحلية) التي تختلف عن المساحة التي يتم الوصول إليها في لوحة إدخال MATLAB (تسمى أيضًا المساحة الأساسية).
يمكن للدالة أن تأخذ معاملات متعددة وأن تعيد معاملات متعددة.
جملة لغة الدالة هي-
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
الأسماء التاليةmymaxيجب كتابة الدالة في ملف يسمىmymax.mفي الملف. إنه يستخدم خمس أرقام كمعاملات ويقوم بإرجاع أكبر رقم.
أنشئ ملف دالة، واسمه mymax.m وادخل الكود التالي فيه-
function max = mymax(n1, n2, n3, n4, n5) %هذا الدالة تستخدم لتحليل %ادخل خمس أرقام max = n1; إذا (n2 > max) max = n2; end إذا (n3 > max) max = n3; end إذا (n4 > max) max = n4; end إذا (n5 > max) max = n5; end
السطر الأول للوظيفة هو الكلمة المفتاحية function开头 . يحدد اسم الوظيفة والترتيب للمعاملات. في مثالنا،mymaxالوظيفة تحتوي على خمس معامل دخول وواحد معامل خروج.
تعليمات الوظيفة بعد السطر المعلق توفر نص المساعدة. عند إدخال ما يلي، سيتم طباعة هذه السطور:
help mymax
سيقوم MATLAB بتشغيل الجملة السابقة وسيقوم بإرجاع النتيجة التالية-
هذه الوظيفة تقوم بحساب أكبر عدد من خمس أرقام كمدخلات
يمكنك تسمية الوظيفة
mymax(34, 78, 89, 23, 11)
سيقوم MATLAB بتشغيل الجملة السابقة وسيقوم بإرجاع النتيجة التالية-
ans = 89
تُعتبر الوظائف المجهولة مثل الدوال المدمجة في لغات البرمجة التقليدية، وتُعرف في جملة واحدة من MATLAB. تتكون من تعبير MATLAB وعدد غير محدود من معامل الدخول والخروج.
يمكنك تعريف وظيفة مجهولة مباشرة في سطر الأوامر الخاص بـMATLAB أو في وظيفة أو سكربت.
بهذا، يمكنك إنشاء وظائف بسيطة دون الحاجة إلى إنشاء ملف.
جملة إنشاء وظيفة مجهولة من تعبير
f = @(arglist)expression
في هذا المثال، سنكتب وظيفة مجهولة تُدعىpower، ستأخذ数字ين كمدخلات وسيعمل على رفع الأول إلى قوة الثاني.
قم بإنشاء ملف سكريبت وقم بكتابة الكود التالي فيه-
power = @(x, n) x.^n; result1 = power(7, 3) result2 = power(49, 0.5) result3 = power(10, -10) result4 = power (4.5, 1.5)
عند تشغيل الملف، يظهر
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
يجب تعريف أي وظيفة باستثناء الوظائف المجهولة في الملف. يحتوي كل ملف وظيفة على وظيفة رئيسية ضرورية تظهر أولاً، وعدد غير محدود من الفئات الفرعية الاختيارية التي تستخدمها الوظيفة الرئيسية بعد ذلك.
يمكن استدعاء الوظيفة الرئيسية من خارج ملف التعريف الرئيسي (من سطر الأوامر أو وظيفة أخرى)، ولكن لا يمكن استدعاء الفئة الفرعية من خارج ملف التعريف الرئيسي من سطر الأوامر أو وظيفة أخرى.
الفئة الفرعية فقط مرئية للملف الذي يحددها والمساهمات الفرعية الأخرى في ملف التعريف الخاص به.
لنكتب وظيفة تُدعىquadratic لحساب جذور المعادلة الثنائية. تحتوي الوظيفة على ثلاثة مدخلات: المعامل الثنائي، المعامل الخطي والمعامل الثابت. ستقوم بالعودة إلى الجذور.
سيحتوي ملف وظيفةquadratic.m على وظيفة رئيسيةquadratic وفункциة فرعيةdisc، التي تcalculate التمييز.
أنشئ ملف وظيفة quadratic.m وأدخل التالي في الملف
function [x1,x2] = quadratic(a,b,c) % تعود هذه الدالة % معادلة ثنائية درجة واحدة. % تحتاج إلى 3 معلمات إدخال % x2،x و % المعلمة الثابتة % تعود الجذر d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % نهاية الدالة quadratic function dis = disc(a,b,c) % حساب الحد المقدار dis = sqrt(b^2 - 4*a*c); end % نهاية الدالة الفرعية
يمكنك طلب هذه الوظائف من ماسح الأوامر، كما يلي:
quadratic(2,4,-4)
سيقوم MATLAB بتشغيل الجملة السابقة وسيقوم بإرجاع النتيجة التالية-
ans = 0.7321
يمكنك تعريف دالة داخل جسم دالة أخرى. هذه تُدعى الدوال المدمجة. تحتوي الدوال المدمجة على أي أو جميع مكونات أي دالة أخرى.
تُحدد الدوال المدمجة في نطاق دالة أخرى، وتتشارك في الوصول إلى منطقة العمل للدالة المحتوية عليها.
تبتدئ الدوال المدمجة بالقواعد التالية-
function x = A(p1, p2) ... B(p2) function y = B(p3) ... end ... end
لنعدل النموذج السابقquadraticالدالة. لكن، هذه المرة، ستكون دالة disc دالة مدمجة.
أنشئ ملف دالةquadratic2.m،وادخل الكود التالي فيه-
function [x1,x2] = quadratic2(a,b,c) function disc % دالة مدمجة d = sqrt(b^2 - 4*a*c); end % انتهاء الدالة disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % انتهاء الدالة quadratic2
يمكنك استدعاء الوظيفة من سطر الأوامر كما يلي:
quadratic2(2,4,-4)
سيقوم MATLAB بتشغيل الجملة السابقة وسيقوم بإرجاع النتيجة التالية-
ans = 0.73205
الدوال الخاصة هي الدوال التي يمكن رؤيتها فقط من قبل مجموعة محدودة من الدوال الأخرى، والدوال الرئيسية. إذا كنت لا ترغب في نشر تنفيذ دالة function(s)، يمكنك إنشاؤها كدالة خاصة.
توجد الدوال الخاصة في مجلد فرعي يحمل الاسم الخاص Private.
هي مرئية فقط للدوال في مجلد الأب.
لنعدلquadraticالدالة. لكن، هذه المرة، ستقوم دالة disc بحساب الحد المقدار كدالة خاصة.
أنشئ مجلد فرعي يُدعى private في مجلد الدليل الذي تعمل فيه، وقم بتخزين ملف الدالة التالي فيه disc.m
function dis = disc(a,b,c) % حساب الحد المقدار dis = sqrt(b^2 - 4*a*c); end % انتهاء الدالة الفرعية
أنشئ ملف quadratic3.m في مجلد الدليل الذي تعمل فيه، واكتب الكود التالي فيه-
function [x1,x2] = quadratic3(a,b,c) % يعود هذا الدالة % معادلة ثنائية درجة واحدة. يحتاج إلى 3 معلمات إدخال % هم x2،x % الكسر % هي تعود الجذر d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % انتهاء quadratic3
يمكنك استدعاء الوظيفة من سطر الأوامر كما يلي:
quadratic3(2,4,-4)
سيقوم MATLAB بتشغيل الجملة السابقة وسيقوم بإرجاع النتيجة التالية-
ans = 0.73205
يمكن للمتغيرات العالمية أن تُشارك بين عدة وظائف. من أجل ذلك، يجب أن يتم إعلان المتغير كمتغير عالمي في جميع الوظائف.
إذا كنت ترغب في الوصول إلى المتغير من مساحة العمل الأساسية، فعليك إعلانه في سطر الأوامر.
يجب أن يتم إعلان التعريفات العالمية قبل استخدام المتغيرات الفعلية في الوظيفة. من الأفضل استخدام الأحرف الكبيرة في أسماء المتغيرات العالمية لتحديد الفرق بينها وبين المتغيرات الأخرى.
لنقم بإنشاء ملف وظيفة يُدعى average.m وندخل الكود التالي فيه-
function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end
قم بإنشاء ملف سكريبت وقم بكتابة الكود التالي فيه-
global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42]; av = average(n)
عند تشغيل الملف، سيتم عرض النتيجة التالية-
av = 35.500