اطلاعیه

Collapse
No announcement yet.

مشکل در نوشتن تابع

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در نوشتن تابع

    باسلام
    من در استفاده از الگوریتم pso زمانی که تابع هزینه ام را فراخوانی میکنم و برنامه سراغ اجرای تابع مربوط به تابع هزینه میرود پیغام زیر را میدهد.
    Undefined function 'bs1' for input arguments of type 'double'.

    Error in @(k)bs1(k)


    Error in Untitled (line 65)
    particle(i).Cost=CostFunction(particle(i).Position );
    که bs1 نام تابع فراخوانی شده است.

    #2
    پاسخ : مشکل در نوشتن تابع

    این خط توی تابع bs1 هست؟
    particle(i).Cost=CostFunction(particle(i).Position );

    دیدگاه


      #3
      پاسخ : مشکل در نوشتن تابع

      این خط در برنامه untitled که همان الگوریتم pso هست وجود دارد.البته مشکلم برطرف شد ازآنجاییکه مسیر ذخیره و اجرای الگوریتم و تابع یکی نبود این مشکل وجود داشت
      با تشکر از کمک دوستان

      اضافه شده در تاریخ :
      من در اجرای این برنامه ها در محلی از برنامه باید به سیمولینک رفته و فایل سیمولینک را اجرا کنم و دوباره به m.file برگردم.که در این فرایند ابتدا باید یک سری داده از m.file
      به سیمولینک برود و پس از پردازش دوباره یک سری داده از سیمولینک به m.file برگردد و پردازش شود و همینطور ادامه می یابد زیرا در m.file یکحلقه دارم که چند هزار بار این حلقه تکرار می شود.مشکل من اینست که دستورات مربوط به فراخوانی سیمولینک و ارسال داده از سیمولینک به m.file و بالعکس را نمیدانم.

      دیدگاه


        #4
        پاسخ : مشکل در نوشتن تابع

        توی سیمولینک، پارامترهایی که نیاز داری در m-file رو استفاده کنی رو با بلوک to workspace وصل کن. وقتی اجرا کنی، اون پارامترها توی work space ذخیره میشن. حالا میتونی توی m-file از اون پارامترهایی که توی workspace قرار دارند فراخونی و استفاده کنی. باز همینطور دوباره میتونی خروجی m-file رو که توی workspace ذخیره شده رو با بلوک from workspace بیاری توی سیمولینک و ازشون استفاده کنی.

        دیدگاه


          #5
          پاسخ : مشکل در نوشتن تابع

          چطور میشه از این بلوکها استفاده کرد؟؟؟؟؟؟

          دیدگاه


            #6
            پاسخ : مشکل در نوشتن تابع

            نوشته اصلی توسط namdar soleiman netaj
            چطور میشه از این بلوکها استفاده کرد؟؟؟؟؟؟
            با workspace که کاری نداره. به این صورته :
            http://www.uplooder.net/img/image/23/38271834e05fd63acd2d0bb43c63f19f/1.jpg

            بعد از اون دیگه میری با m-file کار میکنی. یعنی مقادیری که نیاز داشتی توی m-file ازش استفاده کنی توی workspace هستن و باید فراخونی کنی!

            دیدگاه


              #7
              پاسخ : مشکل در نوشتن تابع

              سیمولینک رو چطور فراخوانی کنم و چطوری از بلوک from workspace استفاده کنم البته توی help متلب یه چیزایی دیدم ولی نتونستم خوب باهاش کار کنم.

              دیدگاه


                #8
                پاسخ : مشکل در نوشتن تابع

                نوشته اصلی توسط namdar soleiman netaj
                سیمولینک رو چطور فراخوانی کنم و چطوری از بلوک from workspace استفاده کنم البته توی help متلب یه چیزایی دیدم ولی نتونستم خوب باهاش کار کنم.
                توی m-file که داری کد نویسی میکنی، اسم فایل سیمولینکت رو بنویس و بعد پایینش کدها رو.
                وقتی m-file رو که اجرا میکنی، سیمولینک خودش اجرا میشه و او پارامترهایی که به بلوک to workspace وصله، مقادیرش توی workspace میاد و باقی ماجرا.
                from workspace هم عکس to workspace هست دیگه. به هر جا که میخوای خروجی m-file رو توی سیمولینک بدی به همونجا وصل کن.
                مثلن خروجی m-file متغیر به نام a هست که یه عددی در میاد. بعد میخوای کجای سیمولینکت این متغیر بعنوان ورودی باشه؟ خب همونجا یه بلوک from workspace میذاری به اسم a .
                اگه متوجه نشدی، اجازه بده که دوستان دیگه بیان راهنمائیت کنن. شاید توضیح من خوب نباشه.
                موفق باشی

                دیدگاه


                  #9
                  پاسخ : مشکل در نوشتن تابع

                  البته من که فایل شما رو ندیدم . ممکنه اینطوری باشه که این کد نویسی ها در یک Embeded Matlab Function نوشته بشه و دو قسمت سیمولینک رو به هم وصل کنه.
                  اون قسمت که to/from workspace داره!

                  دیدگاه


                    #10
                    پاسخ : مشکل در نوشتن تابع

                    شما زحمت بکش یه m.file چند خطی بنویس که ابتدا به x , y مقدار بده و اونو بفرسته به سیمولینک و اونجا روی اونا یک عمل ریاضی انجام بده و سپس نتیجه رو بفرسته به m.file , mi.file اونو نشون بده.لطف کنید فایل سیمولینک و m.file رو برام میل کنید. ns.netaj@yahoo.com

                    دیدگاه


                      #11
                      پاسخ : مشکل در نوشتن تابع

                      نوشته اصلی توسط namdar soleiman netaj
                      شما زحمت بکش یه m.file چند خطی بنویس که ابتدا به x , y مقدار بده و اونو بفرسته به سیمولینک و اونجا روی اونا یک عمل ریاضی انجام بده و سپس نتیجه رو بفرسته به m.file , mi.file اونو نشون بده.لطف کنید فایل سیمولینک و m.file رو برام میل کنید. ns.netaj@yahoo.com
                      پیام خصوصی گذاشتم برات.

                      دیدگاه

                      لطفا صبر کنید...
                      X