View Full Version : ارسال خروجی فازی به یک تابع در متلب
almasm85
چهارشنبه 31 تیر 1394, 17:56 عصر
سلام
چطور میشه به طور اتو ماتیک خروجی فازی رو به سمت یک تابع هدایت کرد.
مثلا فرض کنید فازی چهار خروجی a , b , c , d دارد.
و بعد از اینکه سیستم فازی تشخیص داد که جواب کدوم هست ، جواب یعنی خروجی فازی به سمت یک تابع برود و عملیاتی روش انجام بده . اما خودش اتوماتیک به سمت تابع مورد نظر برود.؟
ممنونم
almasm85
چهارشنبه 31 تیر 1394, 21:03 عصر
حالا سوالم رو یک جور دیگه میپرسم ...
ببینید ما 3 تا خروجی داریم
سرد http://mathworks.ir/components/com_kunena/template/default/images/emoticons/dizzy.png
ولرم http://mathworks.ir/components/com_kunena/template/default/images/emoticons/smile.png
گرم http://mathworks.ir/components/com_kunena/template/default/images/emoticons/sad.png
فرض کنید با توجه به ورودی ما ، مثلا خروجی شده گرم
اما فازی به جای گرم به من یک عدد میده ...
مثلا 100
حالا من میخام اگر گرم باشه ، بره داخل تابع شماره 3 و مثلا یک عملیات روش انجام بده ....
میشه یه ایده بدید لطفا ؟ ممنون
rahnema1
پنج شنبه 01 مرداد 1394, 04:07 صبح
سلام
ابتدا سه تا تابع را تعریف می کنیم
و سلول سه تایی تشکیل می دهیم که شامل اسم سه تابع می شه
funcs = {@func1, @func2, @func3};
فرضا خروجی تابع از یک تا صد باشه
این دامنه را به سه بخش تقسیم می کنیم
مثلا نتیجه عددی که به دست آمده اسمش هست result
تابع مورد نظر را اینجور صدا می زنیم
funcs{ceil(result/(100/3))}()
قبلا در مورد صدا زدن تابع به همین شکل در پست زیر توضیح دادم
http://barnamenevis.org/showthread.php?473181
almasm85
پنج شنبه 01 مرداد 1394, 15:05 عصر
ممنونم
من با دستور if تابع را صدا می زنم.
این نوع صدا زدن تابع برام جالبه .
میتونم بپرسم چه فرقی با دستور if داره ؟
almasm85
پنج شنبه 01 مرداد 1394, 16:09 عصر
ببخشید یک سوال برام پیش اومده ، فرض کنید :
خروجی ما فقط 1 - 2 - 3 هست . و سه تا تابع 1 - 2 - 3 داریم .
حالا اگر یک باشه میره به تابع 1
اگر دو باشه میره به تابع 2
اگر سه باشه میره به تابع 3
حالا اسم خروجی را می گذارم i :
output=i
بعد همین سلول که شما فرمودید :
funcs = {@func1, @func2, @func3};
میخام وقتی i ، میشه یک : خودش مستقیم بره توی تابع یک و عملیات رو انجام بده
من به این صورت فراخوانی کردم :
funcs {i};
اما جواب به صورت زیر میشه :
func1@
و وارد تابع نمیشه ، نمیدونم کجاشو اشتباه کردم
---------------------------------------------------------------------------
تشکر
almasm85
پنج شنبه 01 مرداد 1394, 17:15 عصر
ببخشید من فهمیدم چرا نمیشد.
یک اشتباه خیلی خیلی ساده کردم.
به تابع ورودی نداده بودم
:لبخندساده:
مشکلم حل شد . ممنون
:تشویق:
خیلی کمکم کردید ، تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.