germ (02-06-10), MoBiN.R (02-06-10), overclock990 (25-04-14)
با سلام!
در اين تاپيك سورس ها و آموزش هاي مطلب قرار داده ميشه.
سورس معمولا" مربوط به M-File ها هستش و سعي شده كه اين كد ها در اكثر نسخه هاي Matlab قابل اجرا باشن.
در ادامه آموزش هاي كامل و كاربردي هم از Matlab قرار داده ميشه.
موفق باشيدبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
germ (02-06-10), MoBiN.R (02-06-10), overclock990 (25-04-14)
با قرار دادن دستور زير دريك mfile و اجراي آن يه شش ضلعي در پنجره ي Figure ترسيم مي شود.
کد:x=[1.5 3 1.5 -1.5 -3 -1.5 1.5]; y=[1.5*(3)^0.5 0 -1.5*(3)^0.5 -1.5*(3)^0.5 0 1.5*(3)^0.5 1.5*(3)^0.5]; plot(x,y)
iranch (23-10-15), MoBiN.R (02-06-10), OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
با كپي كردن كد زير در Mfile و اجراي كد يه مكعب ترسيم مي شود:
کد:clf hold on [x,y]=meshgrid(-2:2); z=zeros(5) + 2; surf(x,y,z) [x,z]=meshgrid(-2:2); y=zeros(5) + 2; surf(x,y,z) [y,z]=meshgrid(-2:2); x=zeros(5) + 2; surf(x,y,z) [x,y]=meshgrid(-2:2); z=zeros(5) - 2; surf(x,y,z) [x,z]=meshgrid(-2:2); y=zeros(5) - 2; surf(x,y,z) [y,z]=meshgrid(-2:2); x=zeros(5) - 2; surf(x,y,z) view(30,30)
germ (02-06-10), khalilparvar (08-08-16), MoBiN.R (02-06-10), OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
اين سورس مربوط به MFile ، مقدار h را از كاربر (توسط پنجره Commnad) گرفته و به تعداد h پله ي عرش را كه تعبيري شهودي از دنباله ي واگراي n^-1 است را ترسيم مي كند:
کد:clc h=input('Please insert a positive integer: '); clc if h>0 clf hold on x=[0 0 1]; y=[0 1 1]; plot(x,y) for i=2:h x=x+[(i-1)^-1 (i-1)^-1 i^-1]; y=y+[(i-1)^-1 i^-1 i^-1]; plot(x,y) end else error(':-(') end
germ (02-06-10), MoBiN.R (02-06-10), OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
اين سورس مقدار ضلع مربع و يك مقدار حدي را از طريق پنجره ي Command از كاربر دريافت كرده و مربعات ارشميدس را تشكيل مي دهد تا مقدار ضلع كوچك ترين مربع به عدد حدي تعيين شده برسد:
کد:clc r=input('Plz determine R: '); a=input('Now plz insert A: '); b=a; clc clf hold on while abs(a)>=r x=[-b a a]; y=[b b -a]; plot(x,y) b=-a; a=-.8*a; end
آخرین ویرایش توسط ravegoat در تاریخ 05-06-10 انجام شده است علت: اشكال در تحليل سورس
germ (02-06-10), MoBiN.R (02-06-10), OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
اين كد MFile حركت دو بعدي يه توپ را روي منحني |sint/t| شبيه سازي مي كند:
کد:clear all s=clock; clc x=linspace(0,50,500); y=(abs(sin(x))./x); for i=1:500 clf hold on plot(x(1:i),y(1:i),'-') plot(x(i),y(i),'o r') axis([-1,51,-0.1,1.1]) m(i)=getframe; end f=clock-s; fprintf('Finished in %g second(s) \n',(f(4)*3600 + f(5)*60 + f(6))) clear all
MoBiN.R (02-06-10), overclock990 (25-04-14), Shahryar (01-06-10), VAhid_El (20-11-13), yellowYeild (23-09-10)
با قراردادن سورس زير در يك MFile جديد و اجراي آن مي توانيد اين شبيه سازي را در پنجره ي Figure مشاهده كنيد:
کد:clear all clc clf dt=linspace(0,pi,120); for i=1:120 surfl(peaks) shading interp; for j=1:round(abs( sin(dt(i))*20)) light('Position',[cos(dt(i))*50 0 sin(dt(i))*10],'Style','infinite'); end if i<20 title('Hello World') elseif i>20 && i<50 title('Morning') elseif i>50 && i<70 title('Noon') elseif i>70 && i<100 title('Afternoon') else title('Evening') end m(i)=getframe(); end title('Thats a simple day!') movie(m,1,12)
MoBiN.R (24-06-10), OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
سورس زير رو مي تونيد تو يه MFile بريزيد و اجرا كنيد. با اجراي كد برنامه مقدار n رو از طريق Command Windows از كاربر دريافت مي كنه و سپس n عدد از كاربر دريافت مي كند و سپس آن ها را به صورت صعودي به نزولي نمايش مي دهد. در اين قطعه كد از توابع Sorting مطلب استفاده نشده چون هدف نمايش الگوريتم و منطق اين مرتب سازي بوده استبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید :
کد:clear all clc n=input('How many numbers you want to insert: '); for i=1:n clc m(i)=input('Please insert number: '); end clc c=n; for i=1:n p=m(1); inx=1; for j=2:c if p<m(j) p=m(j); inx=j; end end m(inx)=m(c); c=c-1; fprintf('%g \n',p) end
mahdi darabi (03-12-17), MoBiN.R (24-06-10), yellowYeild (23-09-10)
براي تعريف يك تابع در MATLAB بايد يك MFile جديد ايجاد كنيد. سپس دستورات را اين گونه داخل تابع وارد كنيد:
کد:function FuncName(a,b,c,...,n) %دستورات end
FuncName نام تابع است.
مقادير a تا n نيز نام آرگومان ها هستند. (توجه كنيم كه منظور از n اين است كه به مقدار دلخواه مي توان براي تابع پارامتر تعريف كرد.)
سپس بايد MFile را با نام تابع (در اين جا FuncName) در Work Path ذخيره كرد. در اين صورت همواره به تابع دسترسي داريم.
توجه كنيد كه متغير هاي تعريف شده در درون تابع پس اجراي دستورات درون function پاك مي شوند. پس اگر به مقادير اين متغير ها نياز داريد با نوع متغير را global انتخاب كنيد.
در آينده سعي مي شود كه بيش تر در اين مورد توضيح دهيم.
به عنوان يك مثال ساده، تابع اي با نام kore تعريف مي كنيم كه با گرفتن مقادير a , b و c به عنوان مركز كره و مقدار r براي شعاع، آن كره را ترسيم مي كند:
حال با دستور زير يك كره با شكل دلخواه رسم مي شود:کد:function kore(a,b,c,r) [x,y,z]=sphere(30); x=x*r+a; y=y*r+b; z=z*r+c; surfl(x,y,z) end
کد:kore(1,2,3,0.5)
OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
با تو جه به تابع كره در پست 9 در اين قسمت مي تونيم حركت يه كره بر مسير دايره اي رو شبيه سازي كنيم:
کد:clear all k=linspace(0,2*pi,100); for j=1:100 z(j)=5; end for t=1:100 clf plot3(5*sin(k),5*cos(k),z,'-.') hold on kore(5*sin(t),5*cos(t),5,0.3) axis([-6,6,-6,6,4,6]) m(t)=getframe(); end
OVEN (13-11-11), overclock990 (25-04-14), yellowYeild (23-09-10)
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks