# مباحث متفرقه برنامه نویسی > برنامه نویسی Matlab >  ایجاد یک دیتا ست

## mahdieh67

سلام
من یه فرمولی دارم، که میخوام یه دیتاست 75 تایی با توجه به  فرمول زیر تو مطلب بنویسم، ممکنه راهکار رو بهم بگید؟

----------


## mahdieh67

من خودم این کد رو براش نوشتم ولی ارور داره  domainsize=[1 750]; domain=zeros(domainsize); for R=-2:2     for C=-2:2         {             domain=Sin(0.4006(R-C));             }           میشه سریعا راهنماییم کنین :(((((((((((((

----------


## niloofar_f

> من خودم این کد رو براش نوشتم ولی ارور داره  domainsize=[1 750]; domain=zeros(domainsize); for R=-2:2     for C=-2:2         {             domain=Sin(0.4006(R-C));             }           میشه سریعا راهنماییم کنین :(((((((((((((


سلام 
دوست عزیز کاش بهتر درمورد مسئله توضیح میدادید!! من کد شما رو به شکل زیر تصحیح کردم که امیدوارم مفید باشه


domainsize=[1 750];
 domain=zeros(domainsize);
C=-2:2;
R=-2:2;
for i=1:750 
 r=randi(5);
 c=randi(5);
 R1=R(r);
 C1=C(c);
 domain(1,i)=sin(0.4006 *(R1-C1));
end

----------


## mahdieh67

مرسی عزیزم لطف کردین ، اوکی بود :متفکر: 
پروژه خودم رو به صورت زیر تغییر دادم ولی بازم جواباش رو همه صفر میده  :متفکر: 
میتونی ایرادش رو بگی؟



> clc;
> clear all;
> domainsize=[1 750];
> domain=zeros(domainsize);
>  for i=1:750
> for r=-2:2
>     for c=-2:2
>         domain(1,i)=sin (0.4006 * (r-c));
>     end
> ...

----------


## niloofar_f

> مرسی عزیزم لطف کردین ، اوکی بود
> پروژه خودم رو به صورت زیر تغییر دادم ولی بازم جواباش رو همه صفر میده 
> میتونی ایرادش رو بگی؟


خواهش میکنم خانومی! توی این کد، نتیجه نهایی برای _domain(1,i) برای r=2 و c=2 محاسبه میشه!! در کد من، r و c به صورت تصادفی از بازه تعیین شده انتخاب میشه!
موفق باشی_  :لبخند:

----------


## rahnema1

y=sin((rand(1,750)-rand(1,750))*4*0.4006);

----------


## mahdieh67

مرسی :قلب:  :قلب: 
الان اگه بخوام 60 از این دیتاست رو به عنوان داده اموزشی و بقیه رو داده آزمایشی بگیرم باید چیکار کنم؟
یعنی 450 تا آموزشی 300 تا آزمایشی؟
این درسته؟




> [train,test]=dividerand(domain,0.6,0.4);


باید   RMSE<0.01  باشه برای هر دو داده های اموزشی و آزمایشی،
برای طراحی یک سیستم فازی برای این مسئله با تولباکس مطلب، باید چی کار کنم؟ 
خوب یه سری داده دارم که نمی دونم چی رو باید اموزش ببینن، چطوری باید قانون بنویسیم و ورودی و خروجی رو چی بگیرم ؟؟؟ 

ممنون میشم کمکم کنیم  :افسرده:

----------


## rahnema1

اگه می خواهید از anfis استفاده کنید این ورودی شما خواهد بود

x1=rand(750,1);
x2=rand(750,1);
y=sin((x1-x2)*4*0.4006);
tindex=logical(zeros(750,1));
tindex(randperm(750,450))=1;
trnData =[x1 x2 y](tindex);
chkData =[x1 x2 y](~tindex);

نحوه استفاده از anfis توی هلپ متلب توضیح داده شده. این دستور هم برای محیط گرافیکی
anfisedit

----------


## mahdieh67

ببخشید این ارور رو میده

??? Error: File: test5.m Line: 6 Column: 19
Unbalanced or unexpected parenthesis or bracket.

یه سوال دیگه میتونم بپرسم چرا تو فرمول ضربدر چهار کردین؟
y=sin((x1-x2)*4*0.4006);

----------


## rahnema1

من که اجرا می کنم خطا نمیده

در مورد سوال دوم
می دونیم که rand یک عدد اعشاری بین صفر و یک تولید می کنه حالا ما می خواهیم این عدد بین 2 -و 2 باشه
فاصله بین 2 -و 2 برابر است با 4
حالا بینید x1=rand*4-2 یک عدد بین 2- و 2 ایجاد می کنه
اگه جمع و تفریق کنید همون میشه

----------


## rahnema1

ببخشید این جور میشه


x1=rand(750,1);
x2=rand(750,1);
y=sin((x1-x2)*4*0.4006);
tindex=logical(zeros(750,1));
tindex(randperm(750,450))=1;
trnData =[x1 x2 y](tindex,:);
chkData =[x1 x2 y](~tindex,:);

----------


## mahdieh67

باز برا همون خط ارور میده :گریه:   ای بابااااااااااا :گریه:

----------


## rahnema1

من با octave تست می کنم انجام میشه
این یکی دیگه فکر نکنم مشکل داشته باشه

x1=rand(750,1);
x2=rand(750,1);
y=sin((x1-x2)*4*0.4006);
tindex=logical(zeros(750,1));
tindex(randperm(750,450))=1;
data=[x1 x2 y];
trnData =data(tindex,:);
chkData =data(~tindex,:);

----------


## mahdieh67

چرا الانم میگه ارگومان randperm  زیاده :اشتباه: 

??? Error using ==> randperm
Too many input arguments.

Error in ==> test6 at 5
tindex(randperm(750,450))=1;

----------


## rahnema1

شاید متلب شما قدیمی باشه

x1=rand(750,1);
x2=rand(750,1);
y=sin((x1-x2)*4*0.4006);
rprm=randperm(750);
data=[x1 x2 y];
trnData =data(rprm(1:450),:);
chkData =data(rprm(451:750),:);

----------


## mahdieh67

سلام
من الان میخوام با nntool کار کنم و داده ام iris هستش ، میخوام 65 % درصدش رو به عنوان داده اموزشی بدم، و باقی برای آزمایش
فایل iris یک ماتریس 5*150 است
مثل سوال قبلی خواستم جدا کنم ولی نشد

load iris.dat
rprm=randperm(750)

trnData =iris(rprm(1:487),:);

chkData =iris(rprm(488:750),:);

----------


## rahnema1

rprm=randperm(150)
trnData =iris(rprm(1:100),:);
chkData =iris(rprm(101:150),:);

----------


## mahdieh67

سلام برای فرمول زیر میخوام یه کدی بنویسم 

که xi  بین صفر و 3.14 باشه و i ها از یک تا  5 :-؟
f=0
for i=1:5
f=f+sin(xi)*(sin (i)*(xi ^ 2)/pi)^20
end

ولی نمیدونم چطوری باید بگم که x  بین این اعداد صفر و 3.14 هست و رندم انتخاب کنه؟

----------


## rahnema1

سلام
عکس مشکل داره و خرابه لطفا یک بار دیگه بفرستید

----------


## mahdieh67

http://www.up3.98ia.com/images/mv2au85sx1lqmigw8fg.png

----------


## rahnema1

i=1:5;
x=rand(1,5)*3.14;
f=sum(sin(x).*(sin(i.*x.^2/pi)).^20)

----------


## mahdieh67

دیگه for نمیخواد؟

----------


## rahnema1

نه دیگه. اگه قرار بود واسه هر چیزی for بنویسیم که دیگه از متلب استفاده نمی کردیم

----------


## mahdieh67

سلام سوالی داشتم ولی نمیدونستم کجا تاپیکش رو بزنم
ممکنه شبکه som رو برام توضیح بدید و اینکه فرق اساسیش باشبکه mlp چیه؟
همین طور مفهوم granulation یعنی چی؟

----------


## rahnema1

> سلام سوالی داشتم ولی نمیدونستم کجا تاپیکش رو بزنم
> ممکنه شبکه som رو برام توضیح بدید و اینکه فرق اساسیش باشبکه mlp چیه؟
> همین طور مفهوم granulation یعنی چی؟


سلام
فکر کنم قبلا توی همین سایت در مورد این مباحث توضیح داده شده بهتره جستجو کنید
فقط در مورد som یک نکته که این روش یک روش خوشه بندی هست و همچنین برای نمایش داده های چند بعدی به صورت یک یا دو بعدی به کار میره ( برای جنبه های تفسیری یا مثلا به عناون پیش پردازش داده ها برای ورود به یک روش دیگر)
تفاوت اساسی som و mlp اینه که som یک روش نظارت نشده ولی mlp نظارت شده هست
در مورد granulation در ویکی پدیا این مطلب را ببینید:
http://en.wikipedia.org/wiki/Granular_computing

----------


## mahdieh67

مرسی از راهنمایی تون
ممکنه بگید افزایش توابع عضویت در حل یک مساله ایا کمکی به افزایش دقت سیستم فازی می شه یا نه؟ در کل چه عاملی برای افزایش کارایی سیستم فازی مفید خواهد بود؟

----------


## mahdieh67

اینم هست که اگر 18 ورودی و یک خروجی داشته باشیم استفاده از کدام روش موثر است؟
anfis?
شبکه عصبی سلسه مراتبی
شبکه عصبی
شبکه عصبی خود سازمانده

----------


## rahnema1

میگم اینا سوال امتحانیه؟

----------

