تبلیغات
مهندسی مکانیک و هوافضا - مطالب متلب ( MATLAB )
 
آخرین مطالب
 
پیوندهای روزانه
ترسیم نمودار در متلب - 1

کدهای متلب :


clear all
close all
clc

x = [0 pi/4 3*pi/8 3*pi/4 pi]; y = sin(x);
xi = linspace(0,pi,40)';
yn = interp1(x,y,xi,'nearest');
yl = interp1(x,y,xi,'linear');
ys = interp1(x,y,xi,'spline');
yp = interp1(x,y,xi,'pchip');
xx = linspace(0,pi,50);
plot(xi,yn,'*', xi,yl,'+', xi,ys,'v', xi,yp,'o')
legend('nearest','linear','spline','pchip')
hold on
plot(xx,sin(xx),'-',x,y,'.k','MarkerSize',30)
set(gca,'XTick',x)set(gca,'XTickLabel','0|pi/4l3pi/8|3pi/4|pi')
set(gca,'XGrid','on')
axis([-0.25 3.5 -0.1 1.1])
hold off

نتیجه :

مثال شماره 17

منبع کدها :

کتاب MATLAB Guide - D.J. Higham - second edition - صفحه 163 از فایل pdf کتاب



مرتبط با: متلب ( MATLAB ) ,
مفهوم سری فوریه و فضای فرکانسی
بعید میدونم تا بحال مفهوم سری فوریه و فضای فرکانسی رو به این زیبایی درک کرده باشید . پیشنهاد میکنم مطلب زیر رو از دست ندید .

وقتی بچه بودیم، از کنار هم گذاشتن تکه های کوچک، شکل های مختلف می ساختیم. اگر زرنگ بودیم، وقتی  به مستطیل نیاز لگو سری فوریداشتیم و لگو مستطیل را نداشتیم. مثل شکل زیر با دو مثلث قائم الزاویه یک مربع و با دو تا مربع یک مستطیل می ساختیم. می توانستیم لوزی یا ذوزنقه هم با مثلث بسازیم. خلاصه مثلث، پایه ی تمام شکل های ما بود.
اگر یک شکل را با مثلث نمی توانستیم، بسازیم نگاه می کردیم، که پایه لازم برای ساختن آن شکل چیست. خلاصه شکل های مورد نظر خود را از کنار هم گذاشتن قطعات پایه می ساختیم.

تا اینکه رفتیم راهنمایی و دبیرستان، توی دبیرستان بردار یاد گرفتیم. دوباره به ما گفتند، همه بردارهای روی صفحه را می توان با کمک دو بردار پایه ساخت. ( بردار های فضائی را با سه بردار پایه و بردار های n بعدی را با n  بردار پایه می توان ساخت.) مثل شکل زیر که ساخت بردارهای دو بعدی را به کمک بردارهای پایه نشان می دهد. قبول دارید که با هزاران بردار قرمز به تنهایی نمی توان بردار آبی را ساخت. چون وقتی با چند بردار قرمز به جلو رفتیم، باید راهمان را کج کنیم و عمود بر مسیر قرمز برویم. یعنی از یک بردار عمود بر بردار قرمز استفاده کنیم. بردارهای پایه ما باید عمود برهم ( متعامد ) باشند.
اما نمی دانم چرا بعضی از ما فکر نمی کردیم لگو بازی می کنیم، یادگرفتنش برای ما سخت شده بود. در حالی که این بار برای مان 
بردارفایده داشت. ما برای جمع، تفریق و یا ضرب دو بردار کج و بی قواره، کافی بود با دو بردار کوچولوی قشنگ کار کنیم و فقط  چند عدد را با هم جمع یا در هم ضرب کنیم، که آن را هم کلاس سوم دبستان یاد گرفته بودیم.
بله حق با شماست، ما فایده جمع ، تفرق و ضرب دو بردار را نمی دانستیم. یا هم فکر نکرده و یا دوست نداشتیم بدانیم چه کاربردهایی دارد. باور کنید از صنعت اتومبیل، هواپیما، کشتی، ساختمان، نجوم و ماهواره گرفته تا بازکردن یک پیچ و زدن یک مشت توی یک دعوا  کاربرد دارد.
رفتیم دانشگاه و یک روز سر کلاس ریاضی مهندسی استاد درس بی مقدمه فرمول های زیر را روی تخته نوشت. گاهی هم نیم نگاهی به کاغذهای دستش می کرد، انگار او هم در طول عمرش جز نوشتن روی تخته، این فرمول ها به کارش نیامده بود. خیالمان راحت شد که دوای یادگرفتن این فرمول ها یا تقلب است و یا با هر جون کندنی حفظ برای دو ساعت جلسه امتحان.

به ادامه ی مطلب مراجعه کنید

ادامه مطلب

رسم مقادیر یک ماتریس دو بعدی به صورت شبه رنگی (شطرنجی) با دستور pcolor در متلب

دستور pcolor در متلب، برای ترسیم مقادیر یک ماتریس، به صورت شبه رنگی (شطرنجی)، به کار می رود، به این صورت که عناصر ماتریس، به صورت شطرنجی، نمایش داده می شوند و متناسب با مقدار هر عنصر، درون خانه متناظر با آن عنصر، با یک رنگ پر می شود. به مثال زیر توجه کنید :

مثال

clear all
close all
clc
 
x=-10:0.5:10;
y=-10:0.5:10;
L=length(x);
z=zeros(L,L);
for nn=1:L
    for mm=1:L
        z(nn,mm)= -sqrt(x(nn)^2+y(mm)^2);
    end
end
 
pcolor(x,y,z)
xlabel('x')
ylabel('y')

دستور length ، برای تعیین طول یک بردار به کار می رود. از دو حلقه for ، برای ساخت ماتریس z بر حسب x و y های مختلف، استفاده کرده ایم.

نتیجه :

رسم مقادیر یک ماتریس دو بعدی به صورت شبه رنگی (شطرنجی) با دستور pcolor در متلب
منبع : کلیدستان


مرتبط با: متلب ( MATLAB ) ,
دستور drawnow در متلب

دستور drawnow برای بهنگام نمودن پنجره مورد استفاده قرار می گیرد. بطور كلی در هنگاممتحرك سازیبعد از هر مرحله رسم باید cpu را آزاد كرد . 

در واقع این دستور مشابه دستور pause میباشد . با این تفاوت که دستور pause فاصله ی دو پلات را در بازه ی زمانی دلخواه ما تنظیم میکند ولی دستور drawnow در سریع ترین زمان ممکن ( با توجه به قدرت CPU ) این کار را انجام میدهد.

کدهای متلب :


clear all
close all
clc

x = 0:(pi/48):pi;
ropeheight = sin(x);
line_handle = plot(x,ropeheight);
axis([0 pi -1.1 1.1]);
grid on;
set(line_handle,'LineWidth',3,'EraseMode','background');
for phi = 0:pi/64:10*pi
    set(line_handle,'ydata',cos(phi)*ropeheight);
    drawnow;
end

نتیجه :

نتیجه به صورت انیمیشن می باشد. آخرین تصویر انیمیشن :

مثال شماره 14


مرتبط با: متلب ( MATLAB ) ,
دستورات اولیه و اساسیمتلب که هر برنامه نویسی باید بداند !
1-1-عملیات ریاضی ساده
مثال: محاسبه یک عبارت:
    راه اول: 
>> 4*25 + 6*22 + 2*99 
    ans=
            430

1-2-عملیات ریاضی ساده
مثال: محاسبه یک عبارت:
    راه دوم:
 >>a=25;
 >>b=22; c=99; 
 >>d=4*a+6*b+2*c
     d=
        430
 >>
 به ادامه مطلب مراجعه کنید 
ادامه مطلب

مرتبط با: متلب ( MATLAB ) ,
دستورات try و catch در متلب

فرض کنید یک تعداد دستور داریم و می خواهیم در صورتی که در اجرای آنها، خطایی رخ داد، به جای توقف برنامه و نمایش پیام خطا، یک سری دستور دیگر اجرا شود. برای این منظور، می توانیم از دستورات try و catch در متلب استفاده کنیم. استفاده از این دو دستور، به این صورت می باشد که بعد از دستور try ، دستورات اولیه ای را می نویسیم که هدف اصلی ما، اجرای آنها می باشد. سپس دستور catch را نوشته و پس از آن، دستوراتی را می نویسیم که قصد داریم در صورت بروز خطا برای دستورات اولیه، این دستورات اجرا شوند (دستورات پس از catch ، در صورتی اجرا می شوند که در اجرای دستورات اولیه، خطایی پیش بیاید).

به مثال زیر توجه کنید :

به ادامه ی مطلب مراجعه کنید

ادامه مطلب

مرتبط با: متلب ( MATLAB ) ,
تبدیل فوریه و فضای فرکانسی

همانطور که می دانید مهمترین ویژگی در ادای هر حرف فرکانس های تشکیل دهنده آن حرف می باشد. به عنوان مثال سه فرکانس اصلی حرف " آ " فرکانس های 750 ، 1150 و 2400 هرتر بوده و همین فرکانس های برای حرف " او " 400 ، 1150 و 2300 هرتز می باشند. بنابراین آنچه باعث تفکیک دو حرف " آ " و " او " از همدیگر می شود، فرکانس های تشکیل دهنده آن می باشد. از اینرو در کاربردهای پردازش گفتار پیدا کردن فرکانس های تشکیل دهنده یک سیگنال گفتاری از اهمیت بسیار زیادی برخوردار می باشد.

همانطور که می دانید سیگنال گفتار به شکل یک سیگنال زمانی در اختیار ما قرار دارد و تشخیص فرکانس های تشکیل دهنده یک سیگنال در حوزه زمانی غیرممکن است. به عنوان مثال شکل زیر را که نشان دهنده سیگنال گفتار زمانی حرف " آ " می باشد در نظر بگیرید. بخشی از این سیگنال به شکل زوم شده در شکل نشان داده شده است.

از این شکل پیداست که پیدا کردن فرکانس های تشکیل دهنده این سیگنال از روی سیگنال زمانی غیررممکن می باشد. از اینرو نیاز به ابزار دیگری داریم که بتواند این کار را برای ما انجام دهد. آقای فوریه نشان دادند که هر تابع متناوب را می توان به شکل ترکیبی از موج های سینوسی ( یا کوسینوسی ) نشان داد که این مطلب را با نام سری های فوریه می شناسیم. از مقاله مربوطه به موج سینوسی به یاد دارید که هر موج سینوسی می تواند به شکل یک صوت در خروجی بلندگو به شنیده شود. در این بین فرکانس موج سینوسی نیز مستقیما زیر و بم بودن صوت تولید شده را تعیین می کند.

 

ادامه ی مطلب با ذکر یک مثال 

ادامه مطلب

تبدیل فوریه در متلب

یک قضیه ریاضی می گوید که تقریبا همه توابع را می توان به عنوان مجموعه ای از دامنه های سینوسی و فرکانس های مختلف نشان داد. تبدیلات فوریه یک تکنیکی در ریاضیات است، که برای پیدا کردن دامنه ها و فرکانس های سینوسی آن می باشد. گسسته سازی تبدیلات فوریه –Discrete Fourier Transform  - (DFT) یک الگوریتم که محاسبات برای داده های عددی می باشد. تبدیل فوریه سریع یک  اجرا و پیاده سازی موثر و کارآمدی است. توبع زیر در متلب تبدیلات فوریه و عملیات مرتبط را انجام می دهد:

تبدیل فوریه سریع یک بعدی

fft

تبدیل فوریه سریع دو بعدی

fft2

تبدیل فوریه سریع چند بعدی

fftn

انتقال کندی (عقب افتادگی) صفر به مرکز تبدیل

fftshift

معکوس تبدیل فوریه سریع یک بعدی

ifft

معکوس تبدیل فوریه سریع دو بعدی

ifft2

معکوس تبدیل فوریه سریع چند بعدی

ifftn

قدر مطلق (اندازه اعداد مختلط)

abs

زاویه

angle

مرتب کردن اعداد مختلط بر اساس جفت های مزدوج مختلط

cplxpair

توان دو به بعد

nextpow2

زاویه فاز صحیح

unwarp

ادامه مطلب ...

ادامه مطلب

ساخت آرایه ها برای توابع چند بعدی با دستور ndgrid در متلب

ا استفاده از دستور ndgrid در متلب، می توانیم آرایه هایی را برای توابع چند بعدی بسازیم. توضیحات کامل تر را با یک مثال شرح می دهیم :

مثال

فرض کنید می خواهیم تابع دو بعدی z را به صورت یک ماتریس دو بعدی، بر حسب مقادیر مختلف x و y ، به صورت زیر بسازیم و سپس آن را رسم کنیم : \begin{align} z=\sqrt{x^2+y^2} \end{align}

بازه تعریف شده برای x را به صورت (-5,5) و بازه تعریف شده برای y را به صورت (-4,4) در نظر می گیریم. همچنین، فاصله نمونه های گسسته از این بازه ها را برابر 0.1 قرار می دهیم. برای آنکه سودمندی استفاده از دستور ndgrid را نشان بدهیم، ابتدا روش های دیگر را برای ساخت z به کار می بریم و سپس از دستور ndgrid استفاده می کنیم تا متوجه شوید که استفاده از دستور ndgrid ، ساده ترین راه است. ابتدا با روش سخت تر، این کار را انجام می دهیم :

ادامه مطلب مراجعه کنید

ادامه مطلب

مرتبط با: متلب ( MATLAB ) ,
برچسب‌ها: دستور ndgrid ,
Save و load کردن متغیرها در متلب
گاهی پیش می آید که در متلب، یک یا چند برنامه را اجرا می کنید و حاصل اجرای این برنامه ها، متغیرهایی هستند که در متلب تعریف شده اند و می خواهید که در آینده، از این متغیرها استفاده کنید. اگر پنجره متلب را ببندید، تمامی متغیرهای تعریف شده در آن، پاک می شود، بنابراین راه حل این است که متغیرهای تعریف شده در متلب را به صورت یک فایل، در محلی از درایوهای ویندوز خود save کنید. برای این منظور، روش های مختلفی وجود دارد که در ادامه آنها را شرح خواهیم داد.
به ادامه مطلب مراجعه کنید ...
ادامه مطلب

مرتبط با: متلب ( MATLAB ) ,

تعداد کل صفحات: 4