رفتن به مطلب

استفاده از Function Handle در متلب


helen66

ارسال های توصیه شده

ارسال شده در

با سلام

میخوام فرمول زیر رو بصورت فانکشن بنویسم ..

cost=soschg+costbat-Earnre

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

با تشکر

 

CostFunction=@(kd,Id,Dt) codd17(kd,Id,Dt); % Cost Function

که codd17 بصورت زیره:

function [ cost ] = codd17( coschg,costbat,Earnreg )

%UNTITLED7 Summary of this function goes here

% Detailed explanation goes here

 

cost=codd15+codd4-codd16;

disp(cost)

end

  • Like 2
  • پاسخ 87
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

ارسال شده در
با سلام

میخوام فرمول زیر رو بصورت فانکشن بنویسم ..

cost=soschg+costbat-Earnre

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

با تشکر

 

CostFunction=@(kd,Id,Dt) codd17(kd,Id,Dt); % Cost Function

که codd17 بصورت زیره:

function [ cost ] = codd17( coschg,costbat,Earnreg )

%UNTITLED7 Summary of this function goes here

% Detailed explanation goes here

 

cost=codd15+codd4-codd16;

disp(cost)

end

 

سلام

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

  • Like 2
ارسال شده در
سلام

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

سلام،این اررورشه:

Error using +

Matrix dimensions must agree.

 

Error in codd17 (line 5)

cost=codd15+codd4-codd16;

مثلا ی سری عدد بعنوان ورودی بهش میدیم تا خروجی بگیریم..

coschg,costbat,Earnre هر کدومشو تو ی ام فایل نوشتم...

  • Like 2
ارسال شده در
سلام،این اررورشه:

Error using +

Matrix dimensions must agree.

 

Error in codd17 (line 5)

cost=codd15+codd4-codd16;

مثلا ی سری عدد بعنوان ورودی بهش میدیم تا خروجی بگیریم..

coschg,costbat,Earnre هر کدومشو تو ی ام فایل نوشتم...

 

سلام

خب اینجا میگه جمع نمی تونین استفاده کنین، ابعاد ماتریس ها به هم نمی خوره.

یعنی چی اینا رو هر کدوم توی یه ام فایل نوشتین؟

 

مثلا من بخوام از تابع times متلب برای اینکار استفاده کنم:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 2
ارسال شده در
سلام

خب اینجا میگه جمع نمی تونین استفاده کنین، ابعاد ماتریس ها به هم نمی خوره.

یعنی چی اینا رو هر کدوم توی یه ام فایل نوشتین؟

 

مثلا من بخوام از تابع times متلب برای اینکار استفاده کنم:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

اخه ابعادشو چک کردم هر سه تا 1*100هستند.

یعنی اشتباه نوشتم و باید تو ی ام فایل بنویسم؟؟؟(چون خیلی زیاد میشد جدا گانه نوشتمشون.)

  • Like 2
ارسال شده در
اخه ابعادشو چک کردم هر سه تا 1*100هستند.

یعنی اشتباه نوشتم و باید تو ی ام فایل بنویسم؟؟؟(چون خیلی زیاد میشد جدا گانه نوشتمشون.)

 

نمی دونم چیکار کردین که، فانکشن رو باید توی یه ام فایل بنویسین و سیو کنین، بعد داخل کد دیگه مثل چیزی که بالا نوشتم، استفاده کنین.:a030:

  • Like 2
ارسال شده در
نمی دونم چیکار کردین که، فانکشن رو باید توی یه ام فایل بنویسین و سیو کنین، بعد داخل کد دیگه مثل چیزی که بالا نوشتم، استفاده کنین.:a030:

خب منم این کارو کردم واسه تاشون....:ws52:

  • Like 2
ارسال شده در
خب منم این کارو کردم واسه تاشون....:ws52:

 

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

  • Like 1
ارسال شده در
هلن خانوم، شما باید یه فانکشن تعریف کنین، بعد از اون توی این کدتون مثل کد من استفاده کنین، من از فانکشن متلب استفاده کردم، به جای اینکه یه فانکشن تعریف کنم.

سلام مهندس

من اگه الان بخوام همه برنامه رو تو ی فانکشن بنویسم ،سه تا از متغیر ها که بصورت تصادفی تغییر میکنه رو بعنوان ورودی بگیرم؟؟؟(kd,Id,Dt)

  • Like 1
ارسال شده در

ی سوال دیگه هم دارم :من اگه بخوام cost=soschg+costbat-Earnre بصورت فانکشن بنویسم که سمت چپ هر کدوم ی سری ورودی دارن ،برای ورودی های فانکشن cost باید همون soschgوcostbatو

Earnreبنویسم یا کل ورودی های این سه تا رو؟؟؟؟؟

  • Like 1
ارسال شده در
سلام مهندس

من اگه الان بخوام همه برنامه رو تو ی فانکشن بنویسم ،سه تا از متغیر ها که بصورت تصادفی تغییر میکنه رو بعنوان ورودی بگیرم؟؟؟(kd,Id,Dt)

 

ی سوال دیگه هم دارم :من اگه بخوام cost=soschg+costbat-Earnre بصورت فانکشن بنویسم که سمت چپ هر کدوم ی سری ورودی دارن ،برای ورودی های فانکشن cost باید همون soschgوcostbatو

Earnreبنویسم یا کل ورودی های این سه تا رو؟؟؟؟؟

 

سلام

ببخشید، خیلی متوجه نشدم. با کد توضیح میدین؟

  • Like 1
ارسال شده در
سلام

ببخشید، خیلی متوجه نشدم. با کد توضیح میدین؟

 

مثلا این درسته؟؟؟؟؟؟

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
ارسال شده در
مثلا این درسته؟؟؟؟؟؟
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

این کلش یه فانکشن هست؟

وسطش فانکشن رو بستین که، end گذاشتین.

  • Like 1
ارسال شده در
این کلش یه فانکشن هست؟

وسطش فانکشن رو بستین که، end گذاشتین.

 

بله کلش ی فانکشنه...یعنی باید همه endواسه for هستو اخر بنویسم ؟؟مثل کد زیر:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
ارسال شده در
بله کلش ی فانکشنه...یعنی باید همه endواسه for هستو اخر بنویسم ؟؟مثل کد زیر:

 

نه هلن خانوم، اینجوری که حلقه هاتون به دچار مشکل میشه. ببینین توی کد اولتون یه end خط 50 دارین که مربوط به هیچ forی نمیشه، اون فانکشنتون رو می بنده، متلب فکر می کنه تعریف فانکشنتون تموم شده. در انتحای فانکشن هم میشه از end استفاده کرد، ولی الزامی نیست، مگر اینکه بخواین فانکشن جدیدی توی همون کد تعریف کنین، که توی این حالت end فانکشن هم نیازه که نوشته بشه.:a030:

  • Like 1
ارسال شده در

سلام.این چیزی که میگم ربطی به برنامه نویسی نداره ولی فقط واسه این که کدتون خوانا تر بشه و دیباگ کردنش راحت تر باشه ،هر وقت نوشتن کدتون تموم شد همه ی کد رو انتخاب کنید و Ctrl +I بزنید تا هر حلقه یا تابعی با end خودش هم تراز بشه.الان با این کار شما متوجه میشی که آخرین end به هیچ حلقه یا تابعی تعلق نداره.این کار تو متلب به همین راحتی انجام میشه ولی مثلا اگه همین کد شما تو پایتون بود مرتب کردنش یه کار عذاب آور میشد.

  • Like 2
ارسال شده در
نه هلن خانوم، اینجوری که حلقه هاتون به دچار مشکل میشه. ببینین توی کد اولتون یه end خط 50 دارین که مربوط به هیچ forی نمیشه، اون فانکشنتون رو می بنده، متلب فکر می کنه تعریف فانکشنتون تموم شده. در انتحای فانکشن هم میشه از end استفاده کرد، ولی الزامی نیست، مگر اینکه بخواین فانکشن جدیدی توی همون کد تعریف کنین، که توی این حالت end فانکشن هم نیازه که نوشته بشه.:a030:

 

مرسی اقا ایمان ،اصلاحش کردم...میشه لطف کنید ایراد برنامه رو بگید چیه امشب باید برای استادم بفرستمش ...برنامه کلی pso هست نمیدونم تادرسته یا نه؟ عدداش نمیدونم چرا شبیه هم هستن؟!!!

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
ارسال شده در
مرسی اقا ایمان ،اصلاحش کردم...میشه لطف کنید ایراد برنامه رو بگید چیه امشب باید برای استادم بفرستمش ...برنامه کلی pso هست نمیدونم تادرسته یا نه؟ عدداش نمیدونم چرا شبیه هم هستن؟!!!
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

دو تا از ورودی ها تون (costbat و Earnreg) رو استفاه نمی کنین، دوباره هر دو رو توی فانکشن تعریف می کنین. یا متغیرهایی توی فانکشن دارین که استفاده نمیشن، فقط محاسبه شون می کنین. متلب یه خط نارنی برای اینا میذاره، که موس رو روش نگه دارین، توضیحش رو هم میاره. این اسم فانکشن و متغیر خروجی هم خیلی شبیه به هم هستن، ممکنه با هم اشتباه بشن.

 

البته مشکلی توی اجراش نداری، کد درسته.:a030:

  • Like 1
ارسال شده در
دو تا از ورودی ها تون (costbat و Earnreg) رو استفاه نمی کنین، دوباره هر دو رو توی فانکشن تعریف می کنین. یا متغیرهایی توی فانکشن دارین که استفاده نمیشن، فقط محاسبه شون می کنین. متلب یه خط نارنی برای اینا میذاره، که موس رو روش نگه دارین، توضیحش رو هم میاره. این اسم فانکشن و متغیر خروجی هم خیلی شبیه به هم هستن، ممکنه با هم اشتباه بشن.

 

البته مشکلی توی اجراش نداری، کد درسته.:a030:

ورودی ها رو تغییر دادم بصورت زیر شد: بعدشم از costbat و Earnreg اینا که واسه بدست اوردن خروجی استفاده شده!

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1
ارسال شده در

اینم کد نهایی pso هست که اصلا اجرا نمیشه!!! میشه ایرادششو بگید؟؟؟؟؟

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 1

×
×
  • اضافه کردن...