الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

س:المتغيرات في دوال الماتلاب!

بدأه كاروهات في 23 مارس 2010 · 11 رد · 1,446 مشاهدة · في الذكاء الاصطناعي وتطبيقاته
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أهلاً جميعاً

عذراً ولكن لدي سؤال بخصوص كيفية ادخال قيمة المتغير الاول و الأخير دون الاوسط مثلاً في دالة ما مكونة من 3 عناصر

مثلاً لدي دالة عرفتها ولتكن plus

في الcommand window

لكي اجلب نواتج متغيرات الدالة

plus (a,b,c)

ما الرمز الذي اضعه ليجلب لي العنصر ال c فقط أو a & c

أي ليتجاوز الأوسط أو الأول ...

اتمنى يكون مفهوم سؤالي

شاكرة لكم

#2

جوابي كان خطأ..

بالتوفيق

تم تعديل هذه المشاركة بواسطة ( HASSAN ) في 24 مارس 2010 في 20:04

#3

شكررراً جزيلاً أخ حسان ...

و لكن هل هناك طريقة لإيجاد قيمة عناصر معينة عن عناصر أخرى ،،

مثلاً قيمة في وسط المصفوفة .. ليست من الأول أو الآخر ،،

جزاك الله خيراً ..

#5

السلام عليكم ورحمة الله

الصراحة هذا الموضوع عجيب ومحير laugh.gif

كاروهات كتب:

أهلاً جميعاً

عذراً ولكن لدي سؤال بخصوص كيفية ادخال قيمة المتغير الاول و الأخير دون الاوسط مثلاً في دالة ما مكونة من 3 عناصر

مثلاً لدي دالة عرفتها ولتكن plus

في الcommand window

لكي اجلب نواتج متغيرات الدالة

plus (a,b,c)

ما الرمز الذي اضعه ليجلب لي العنصر ال c فقط أو a & c

أي ليتجاوز الأوسط أو الأول ...

اتمنى يكون مفهوم سؤالي

شاكرة لكم

فى البداية الأخت الفاضلة تتكلم عن متغيرات دالة ما , وفى بداية سؤالها تتساءل عن خاصية ما بخصوص مدخلات هذه الدالة. وفجأة تحول كلامها الى سؤال بخصوص مخرجات هذه الدالة. ودخل أخونا الفاضل د/حسان وقام بإعطاء إجابة بخصوص المتجهات blink.gif , واعجب من ذلك أن الأخت صاحبة السؤال رحبت بإجابة الأخ حسان ohmy.gif وأخيرا تحول الكلام الى المصفوفات laugh.gif

ما الذى يحدث هنا ياجماعة؟ انتم بتتكلموا عن ايه :). تقبلوا كلامى بصدر رحب , انا فقط متعجب من التسلسل الكوميدى للموضوع :)

بارك الله فيكم ونفع بكم ،،،

1

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6
عماد حمدي احمد كتب:

وأخيرا تحول الكلام الى المصفوفات laugh.gif

ههههههههههه

خمنت هذا اخي دكتور عماد والظاهر انه تخميني في محله smile.gif

===

+1 :)

تم تعديل هذه المشاركة بواسطة ( HASSAN ) في 24 مارس 2010 في 09:02

1
#7
( HASSAN ) كتب:

ههههههههههه

خمنت هذا اخي دكتور عماد والظاهر انه تخميني في محله smile.gif

===

+1 :)

بارك الله فيك دكتورنا الفاضل , وشكرا على سعة صدرك :)

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#8

عذراً ربما في سؤالي خطأ وهو كلمة (ادخال) ..لم استطع التعبير جيداً ..

و بالنسبة لشكري فهو على ردّ الأخ حسان و مبادرته ،، ليس أنه أصاب ما أريده ،،

و مثلما قلت عندما تسنّى لي تجربته على الماتلاب لم ادرك منه ما أريد ،،

(لأني حسبت أن كلمة ( end ) أو last قد تفيدني في وضعها بدل المتغيرّ الذي لا أريده رغم أنها مطبقة على المصفوفات) ،،

عموماً لست ضليعة في الماتلاب ..!!

الذي أريده أخ عماد حمدي أحمد ،،

لنفرض لديّ دالة أنشأتها لتحسب لي 3 متغيرات ،،

في نافذة الأوامر ،،نكتب

[a,b,c] = rem(1)

فتنتج لي قيمة a , b & c

س: كيف بإمكاني اخبار البرنامج أن يتجاوز ( أو لا يظهر) قيمة ال b دون أن أغيّر في برمجة دالتي سطراً?

بمعنى كيف بامكاني اختيار المتغيرات التي أريد ظهورها و التي ليست المتغير الأول ،،

شكراً ،،

تم تعديل هذه المشاركة بواسطة كاروهات في 24 مارس 2010 في 19:29

#9

السلام عليكم

اختي الكريمة :

1- يمكنك أن تفعلي ذلك ببساطة في نسخ ماتلاب R2009a و R2010a

عن طريق تجاهل ما تريدي من المتغيرات المخرجة ... وذلك باستعمال العامل (~) tilde

مثال :

ليكن لديك التابع المعرف بالشكل التالي :

function [a b c] = myFun(x,y)
b = x * y;    a = 100;    c = x.^2;

أما عن استدعاء التابع مثلا" بدون اخراج b يكون بالشكل التالي :

[a,~,c]=myfun(3,4)%---->a=100,c=9

2- أما في حال نسخ ماتلاب أدنى فالترتيب في القيم المخرجة يلعب دورا" كبيرا

مثال يبين حالة اخراج متغير واحد فقط ثم متغيرين :

k=myfun(3,4)%------->k=100 
[k,l]=myfun(3,4)%------->k=100 ,l=12

لذلك عند استخدام هذه الطريقة ضعي المتغيرات المخرجة الاقل أهمية الى أقصى اليمين دائما" عند تعريف التابع

3- يؤمن لك ماتلاب دالتين جميلتين تمكنك من معرفة عدد المتغيرات المخرجة والمدخلة التي تمرر من قبل المستخدم وهما : nargin و nargout انها طريقتي المفضلة لأنني لا أملك

الاصدارات الحديثة من ماتلاب

مثال بسيط على استخدامها:

function [c,z] = myfun(a, b)
if (nargout == 1)
    c = a .^ 2;
elseif (nargout == 2)
    c = a + b;
    z = b .^ 2;
end
%طريقة الاستدعاء
s=myfun(3,4)%------->s=9
[s,h]=myfun(3,4)%------->s=7,h=16

بالتوفيق :happy:

#10

هذا ما أريده بالضبط ..

آشكر لك ردك ،،

الحقيقة أنا نسختي متقدمة ..

جربتّ رمز النفي (~ )،(-) و رموز أخرى ،بوضعها مكان المتغير الذي اريد تجاهله و مازال يعطيني (خطأ)

فهل توجد كلمة محجوزة أو رمز يوضع بطريقة ما ،،؟

بالنسبة لطريقتك الأخرى ،،

لا أريد التغيير ف الدالة ،، !

هل هناك حلّ ؟

#11

لماذا لا تضعي محاولاتك والكود الذي كتبتيه ؟ لماذا كل هذا التعتيم ؟

#12

لا أبداً لا يوجد تعتيم ،،

هي دالة تافهة ، و لا احتاج ادراجها ،،ولا يحتاجها حلّ سؤالي،

لكن ساحاول ايجادها ،،

( أنا طالبة حاسب جامعية هذا الكورس للتو ادرس دوال الماتلاب)

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…