ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 15
  1. #1
    2009/05/01
    129
    0

    استفاده از تابع

    سلام
    من در مطلب برنامه اي نوشته ام ولي در يك قسمت از آن مشكل دارم. ممنون ميشم اگه كمكم كنيد.
    من با استفاده از برنامه function مقادير مربوط به 8 متغير x,y,z,w,t,a,b,c را به دست آورده ام. بعد از به دست آوردن آنها بايد در داخل برنامه اصلي (main) از اين 8 متغير استفاده كنم. چطوري بايد اين 8 متغير را در برنامه اصلي با استفاده از تابع آدرس دهي كنم.
    شديدا به كمك نياز دارم. :read: :read:
    خيلي ممنون
  2. #2
    2010/09/07
    تهران
    316
    13

    پاسخ : استفاده از تابع

    سلام
    کافیه قبل از نام تابع خروجیها رو بنویسید، برای مثال تابع myfun هم جمع و هم ضرب دو عدد ورودی x و y را در خروجیهای s و m میریزد:
    کد:
    function [m s] = myfun(x,y)
    m = x.*y;
    s = x+y;
    حالا تو برنامه اصلی هر جا که به مقادیر m و s نیاز داشتید به شکل زیر مقدارشون رو بگیرید:
    کد:
    >> [q1 q2] = myfun(4,5)
    
    q1 =
    
      20
    
    
    q2 =
    
       9
  3. #3
    2009/05/01
    129
    0

    پاسخ : استفاده از تابع

    سلام
    خيلي ممنون بابت جواب
    اگر كه هر كدام از اين خروجيها به صورت ماتريس j*1 باشند اون موقع بايد چطوري در برنامه اصلي اعمال كرد؟
    ممنون ميشم از جوابتون
    راستي مي تونم ازتون سوالي بپرسم؟ :question:
    من هم دانشجوي كارشناسي ارشد برق الكترونيك- اپتيك هستم كه البته به نانو مربوط ميشه. آيا شما در زمينه رشته خودتون مشغول به كار هستيد؟ ميشه در اين زمينه كاري موجود در اين رشته منو راهنمايي كنيد؟
  4. #4
    2010/09/07
    تهران
    316
    13

    پاسخ : استفاده از تابع

    سلام،

    نقل قول نوشته اصلی توسط elm_8688
    اگر كه هر كدام از اين خروجيها به صورت ماتريس j*1 باشند اون موقع بايد چطوري در برنامه اصلي اعمال كرد؟
    هیچ فرقی نمیکنه. چون متغیرها تو matlab ماتریس هستند. پس فرقی نمیکنه j*1 باشه یا i*j

    من متاسفانه در زمینه نانو کار نمیکنم. پایان نامه ام در مورد سلولهای خورشیدی بود و خودم هم به موضوع انرژی خورشیدی علاقمند بودم. نوع خاصی از سلولها رو مدلسازی کردم که از چاههای کوانتومی برای افزایش جذب نور استفاده میکردند. حالا هم در زمینه کنترل کار میکنم نه نانو.
    در آینده قصد دارم مجددا در زمینه انرژی خورشیدی کار کنم.
    فکر کنم اگر کسی دکترا بگیره، در آینده نزدیک بتونه هیات علمی بشه. چون رشته جدیدی هست و دانشگاهای زیادی در آینده اون رو میارن
    از لحاظ بازار کار من به یکی دو تا نمایشگاه نانو سر زدم ولی عمده ترین کاربردهایی که دیدم در زمینه پوشاک (مثلا لباس آنتی باکتریال) و خودرو و آموزش و ساختمان(افزودنی های نانوموادی به بتن) بود.
  5. #5
    2009/05/01
    129
    0

    پاسخ : استفاده از تابع

    سلام
    ممنون بابت راهنمايي شما
    ولي من بازم مشكل دارم بذاريد يك با هم بگم
    هر كدام از خروجيهاي مثلا x,y من 181 تا مقدار دارند كه در برنامه مورد نظر و اصلي هم اين 181 مقدار از هر متغير خروجي را لازم دارم . در اين صورت چطوري مي تونم آنها را در برنامه اصلي وارد كنم. ميشه يك با هم بگيد .
    شرمنده ممنونم.
  6. #6
    2010/09/07
    تهران
    316
    13

    پاسخ : استفاده از تابع

    سلام
    مثلا تابع زیر رو در نظر بگیرید. متغیرهای x و y دارای 13 ستون هستند که مقادیر آنها داخل تابع محاسبه میشود:
    کد:
    function [x y z w] = myfun(i1,i2)
    x = [1 2 1 4 5 2 1 2 5 4 1 2 5];
    y = [1 2 3 5 4 5 8 2 1 2 2 1 2];
    z = i1;
    w = i2;
    حالا در برنامه اصلی میخواهیم به مقادیر خروجیها دست پیدا کنیم. مثلا مقدار پنجم x و مقدار هشتم y را میخواهیم با هم جمع کنیم و در متغیر h بریزیم:
    کد:
    [x y z w]=myfun(5,1);
    h = x(5)+y(8);
    امیدوارم سوالتون رو فهمیده باشم.
    اگر نه، تابع و برنامه تون رو بزارید تا ببینم
  7. #7
    2009/05/01
    129
    0

    پاسخ : استفاده از تابع

    نقل قول نوشته اصلی توسط BlueApple
    سلام
    مثلا تابع زیر رو در نظر بگیرید. متغیرهای x و y دارای 13 ستون هستند که مقادیر آنها داخل تابع محاسبه میشود:
    کد:
    function [x y z w] = myfun(i1,i2)
    x = [1 2 1 4 5 2 1 2 5 4 1 2 5];
    y = [1 2 3 5 4 5 8 2 1 2 2 1 2];
    z = i1;
    w = i2;
    حالا در برنامه اصلی میخواهیم به مقادیر خروجیها دست پیدا کنیم. مثلا مقدار پنجم x و مقدار هشتم y را میخواهیم با هم جمع کنیم و در متغیر h بریزیم:
    کد:
    [x y z w]=myfun(5,1);
    h = x(5)+y(8);
    امیدوارم سوالتون رو فهمیده باشم.
    اگر نه، تابع و برنامه تون رو بزارید تا ببینم
    سلام
    خيلي ممنون از توضيحات شما.بله متوجه شدم.
    حالا اگه بخوام در برنامه ديگه اي يعني برنامه سومم از اين مقادير به دست آمده x,y,z,w استفاده كنم اينجا چطوري از تابع بايد استفاده كنم.؟؟ چون در چند برنامه بايد از اين مقادير به دست آمده استفاده كنم.
    ممنون ميشم اگه جواب اين سوالمم بديد.
  8. #8
    2010/09/07
    تهران
    316
    13

    پاسخ : استفاده از تابع

    سلام
    شما وقتی یک تابع می نویسید، اون رو به شکل یک m-file ذخیره میکنید. اولین خط این m-file همون دستور تعریف تابع است و خطوط بعدی هم مربوط به خواندن ورودی ها و محاسبه خروجی هاست.
    نام این m-file هم باید با نام تابع یکی باشد. مثلا در مورد تابعی که من مثال زدم، نام m-file برابر است با myfun.m
    کد:
    function [x y z w] = myfun(i1,i2)
    x = [1 2 1 4 5 2 1 2 5 4 1 2 5];
    y = [1 2 3 5 4 5 8 2 1 2 2 1 2];
    z = i1;
    w = i2;
    حالا که تابع رو به این شکل ذخیره کردید، هر برنامه ای که داشته باشید میتونید با دستور زیر اون تابع رو فراخوانی کنید:
    کد:
    [x y z w]=myfun(5,1);
    مثلا در برنامه prog1.m و prog2.m نیاز به مقادیر x تا z دارید. خوب دستور [x y z w]=myfun(5,1); رو در هر دو اجرا کنید.
    من فکر میکنم شما تابع رو در همون برنامه اصلی تعریف کردین. (یعنی در قسمت زیرین کد برنامه اصلی) اگر اینکارو کرده باشین نمیتونین از تابعتون در برنامه سوم استفاده کنین. ولی اگر طبق اونچه که در بالا گفتم عمل کنین میتونین تابع رو در هر برنامه ای که میخواین فراخوانی کنین.
    اگر نشد، در خدمتیم
  9. #9
    2009/05/01
    129
    0

    پاسخ : استفاده از تابع

    نقل قول نوشته اصلی توسط BlueApple
    سلام
    شما وقتی یک تابع می نویسید، اون رو به شکل یک m-file ذخیره میکنید. اولین خط این m-file همون دستور تعریف تابع است و خطوط بعدی هم مربوط به خواندن ورودی ها و محاسبه خروجی هاست.
    نام این m-file هم باید با نام تابع یکی باشد. مثلا در مورد تابعی که من مثال زدم، نام m-file برابر است با myfun.m
    کد:
    function [x y z w] = myfun(i1,i2)
    x = [1 2 1 4 5 2 1 2 5 4 1 2 5];
    y = [1 2 3 5 4 5 8 2 1 2 2 1 2];
    z = i1;
    w = i2;
    حالا که تابع رو به این شکل ذخیره کردید، هر برنامه ای که داشته باشید میتونید با دستور زیر اون تابع رو فراخوانی کنید:
    کد:
    [x y z w]=myfun(5,1);
    مثلا در برنامه prog1.m و prog2.m نیاز به مقادیر x تا z دارید. خوب دستور [x y z w]=myfun(5,1); رو در هر دو اجرا کنید.
    من فکر میکنم شما تابع رو در همون برنامه اصلی تعریف کردین. (یعنی در قسمت زیرین کد برنامه اصلی) اگر اینکارو کرده باشین نمیتونین از تابعتون در برنامه سوم استفاده کنین. ولی اگر طبق اونچه که در بالا گفتم عمل کنین میتونین تابع رو در هر برنامه ای که میخواین فراخوانی کنین.
    اگر نشد، در خدمتیم
    سلام دوست من
    واقعا بابت توضيحات شما خيلي ممنونم.من دقيقا متوجه چيزي كه شما گفتيد شدم و در برنامه ام اعمال كردم ولي هنوز ايراد دارم
    من به صورت زير نوشته ام :
    اولين mفايل به نام Func
    function [R] = Func(x)
    معادلات مربوطه
    end

    بعد در برنامه اصلي با نام ROOTS_Final
    clear all
    close all
    clc
    .
    .
    .
    [x,fval] = fsolve(@Func,x0,options)

    از اينجا براي من مقادير f10,f20,f30,f40,f50,f60,f70,f80 به دست آمدند . حالا در برنامه سوم مي خواهم كه از اين 8 مقدار f10 تا f80 استفاده كنم.
    مطابق كفته شما بايد بنويسم :
    Func (x)=[f10;f20;f30;f40;f50;f60;f70;f80]

    يعني ديگه چيزي لازم نيست كه بنويسم؟؟ آخه در اين حالت ايراد مي گيره . چيكار كنم؟؟؟؟
    ممنون ميشم اگه بازم كمكم كنيد . شديدا به كمك نياز دارم .
    خيلي ممنون
    موفق باشيد
    منتظرم شديد
  10. #10
    2009/05/01
    129
    0

    پاسخ : استفاده از تابع

    نقل قول نوشته اصلی توسط elm_8688
    سلام دوست من
    واقعا بابت توضيحات شما خيلي ممنونم.من دقيقا متوجه چيزي كه شما گفتيد شدم و در برنامه ام اعمال كردم ولي هنوز ايراد دارم
    من به صورت زير نوشته ام :
    اولين mفايل به نام Func
    function [R] = Func(x)
    معادلات مربوطه
    end

    بعد در برنامه اصلي با نام ROOTS_Final
    clear all
    close all
    clc
    .
    .
    .
    [x,fval] = fsolve(@Func,x0,options)

    از اينجا براي من مقادير f10,f20,f30,f40,f50,f60,f70,f80 به دست آمدند . حالا در برنامه سوم مي خواهم كه از اين 8 مقدار f10 تا f80 استفاده كنم.
    مطابق كفته شما بايد بنويسم :
    Func (x)=[f10;f20;f30;f40;f50;f60;f70;f80]

    يعني ديگه چيزي لازم نيست كه بنويسم؟؟ آخه در اين حالت ايراد مي گيره . چيكار كنم؟؟؟؟
    ممنون ميشم اگه بازم كمكم كنيد . شديدا به كمك نياز دارم .
    خيلي ممنون
    موفق باشيد
    منتظرم شديد

    سلام
    ميشه كمكم كنيد؟ :cry: :read:
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 15

موضوعات مشابه

  1. لزوم استفاده از تابع SystemInit()
    توسط na333r در انجمن STM
    پاسخ: 8
    آخرين نوشته: 2016/02/17, 23:39
  2. پاسخ: 1
    آخرين نوشته: 2015/10/25, 14:03
  3. تقریب با استفاده از تابع شعاعی rbf
    توسط jahansabz در انجمن هوش مصنوعی و شبکه های عصبی
    پاسخ: 1
    آخرين نوشته: 2015/07/15, 22:40
  4. استفاده از حافظه فلش در آرگمان تابع کامپایلر GCC
    توسط mjs1990s در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2015/04/19, 22:42
  5. طريقه استفاده از تابع read_adc
    توسط mehran.safavy در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2012/07/30, 17:15

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •