ارسالها: 6
موضوعها: 3
تاریخ عضویت: بهمن ۱۳۹۱
اعتبار:
0
سپاس ها 0
سپاس شده 1 بار در 1 ارسال
حالت من: هیچ کدام
۱۳۹۱/۱۱/۱۱, ۱۰:۳۰ ق.ظ
(آخرین تغییر در ارسال: ۱۳۹۱/۱۱/۱۱, ۱۱:۱۸ ق.ظ توسط ghazal.)
با سلام و تشکر به خاطر ایده و راهنمایی که کردید...
یک سوال دیگر هم به وجود آمده در همین راستا:
با انجام کمی مطالعات بیشتر و خوندن دستور parsrule شاید امکان پذیر باشع نوشتن قانون هام بدین صورت که:
Syntax
fis2 = parsrule(fis,txtRuleList)
This function parses the text that defines the rules (txtRuleList) for a MATLAB workspace FIS variable, fis, and returns a FIS structure with the appropriate rule list in place. If the original input FIS structure, fis, has any rules initially, they are replaced in the new structure, fis2.
The key language words in English are if, then, is, AND, OR, and NOT
مثال خود متلب:
a = readfis('tipper');
ruleTxt = 'if service is poor then tip is generous';
a2 = parsrule(a,ruleTxt,'verbose');
showrule(a2)
ans =
1. If (service is poor) then (tip is generous) (1)
اما اینجا مجددا سوالی برای من وجود اومده
که من اگر بخوام از طریق همین دستور همزمان چندین قانون رو در ruleTxt تعریف کنم و با parserule به متغیر فازی ام اضافه کنم چه طوری باید تعریف کنم قوانین رو؟
متشکرم
البته خودم فکر می کنم باید ماتریسی از رشته ها رو تعریف کرد و سپس این ماتریس رو به عنوان ورودی parserule پاس داد..پس فعلا این قضیه حله اما هنوز مشکلی که باقی می مونه این هست که من هر چی تلاش کردم این قانون مذکور رو به فرم text در همان رشته قرار دهم که قانون برای متغیر FIS در نظر کرفته شود خطا داد
د راین مورد اگر راه حلی دارید لطفا راهنمایی کنید
'ruletxt='if x=very low and y= low or y =middle or y=high then out=middle
a = parsrule(a,ruletxt,'verbose');