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

سعی کرده ام هر چی که از نرم افزار matlab و simulink و word و Mendeley و Endnote بلدم بنویسم . در ضمن برای ارتباط با دانشجویان دانشگاه صنعتی سهند نیز از همین جا استفاده میکنم

فوریه گرفتن توسط متلب با دستور FFT
ساعت ۱:۱۸ ‎ب.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

فوریه گرفتن توسط متلب با دستور FFT

اولین مورد درمورد فوریه گرفتن میباشد نکته مهمی که باید گفت این است که دستور fft در متلب از یک سیگنالی که داریم فوریه به آن معنایی که ما بلدیم نمیگیرد یا بیان بهتر برای اینکه قابل استفاده شود باید کمی با دستور مذکور کار کرد.

خیلی جاها بیان شده است که این دستور برای به دست /اوردن طیف فرکانسی یک سیگنال استفاده میشود ولی من با یک سرچ دیدم که اکثرا اشتباه نوشته اند و بهترین منبع help ای خود متلب میباشد.

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

Fs=1000;

Ts=1/Fs;

t=0:Ts:100;

L=size(t,2);

x=sin(2*pi*50*t)+2*sin(2*pi*100*t)-1*sin(2*pi*200*t)

figure(1);plot(t,x)

NFFT = 2^nextpow2(L); % Next power of 2 from length of y

X = fft(x,NFFT)/L;

f = Fs/2*linspace(0,1,NFFT/2);

figure(2);plot(f,2*abs(X(1:NFFT/2)))

 

که در مورد این چند سطرهم لازم هست توضیح داده شود


 
دادن مقدار به متغیرها از طریق کیبورد با دستور input در متلب matlab :
ساعت ۱:۱٦ ‎ب.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

 

 

دادن مقدار به متغیرها از طریق کیبورد با دستور input در متلب matlab :

مرجع

دادن مقدار به متغیرها از طریق کیبورد با دستور input در متلب :

در متلب ، معمولا مقدار متغیرها در همان ابتدای برنامه و با علامت تساوی ، تعیین می شود اما روش دیگری نیز برای اختصاص مقدار به متغیرها وجود دارد و می توان تعیین مقدار به متغیرها را در بین اجرای کدهای برنامه نیز انجام داد . دستور input در متلب برای این منظور به کار می رود . زمانی که متلب به دستور input برسد ، منتظر خواهد ماند تا کاربر مقدار مورد نظرش برای آن متغیر را در پنجره Command وارد کند و سپس زمانی که کاربر کلید enter از کیبورد را فشار دهد ، متلب مقدار وارد شده توسط کاربر را به متغیر اختصاص خواهد داد و سپس بقیه کدهای برنامه را اجرا خواهد نمود .

به کار بردن دستور input برای متغیرهای عددی :

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

مثال :

A=input('please enter your number :   ')

نتیجه :

در پنجره Command ، عبارت : please enter your number نمایش داده خواهد شد . حال تنها کافی است که مثلا عدد 2 را وارد کنیم و سپس کلید enter از کیبورد را فشار دهیم . آنگاه نتیجه زیر نمایش داده خواهد شد :

A =
 
     2

بنابراین عدد 2 را که وارد کرده ایم به عنوان مقدار متغیر A در نظر گرفته شده است .

به کار بردن دستور input برای متغیرهای رشته ای :

همان طور که گفتیم اگر دستور input را بخواهیم برای یک متغیر عددی به کار ببریم ، از شکل معمولی آن استفاده می کنیم اما چنانچه متغیر یک متغیر رشته ای باشد آنگاه باید عبارت 's' را درون پرانتز دستور input بنویسیم . به مثال زیر توجه کنید :

مثال :

همان مثال قبل را این بار برای یک متغیر رشته ای به کار می بریم :

A=input('please enter your number :   ','s')

نتیجه :

در پنجره Command ، عبارت : please enter your number نمایش داده خواهد شد . حال تنها کافی است که مثلا کلمه cat را وارد کنیم و سپس کلید enter از کیبورد را فشار دهیم . آنگاه نتیجه زیر نمایش داده خواهد شد :

A =
 
cat

مشاهده می کنید که متغیر A یک متغیر رشته ای می باشد .

به کار بردن دستور input برای متغیرهای عددی و رشته ای به صورت هم زمان :

ممکن است بخواهیم که انتخاب اینکه مقدار متغیر مورد نظر یک عدد باشد یا یک رشته باشد را به عهده خود کاربر بگذاریم تا از این نظر کاربر آزادی انتخاب داشته باشد . برای این منظور می توان از یک نکته کوچک استفاده کرد و آن این است که از دستور input به همان شکل معمولیش استفاده کنیم ، اگر کاربر قصد وارد کردن یک عدد را داشت باید عدد را وارد کند اما اگر قصد وارد کردن یک رشته را داشته باشد باید رشته مورد نظر خود را بین دو علامت ' قرار دهد . دستور input تشخیص خواهد داد که منظور کاربر وارد کردن یک رشته بوده است و بنابراین دو علامت ' را جزء رشته در نظر نخواهد گرفت و کاراکترهای بین آن دو علامت را به عنوان یک رشته به متغیر اختصاص خواهد داد . به مثال زیر توجه کنید :

مثال :

A=input('please enter your number for A :   ')
B=input('please enter your string for B :   ')

نتیجه :

در پنجره Command ابتدا عبارت زیر نمایش داده می شود :

please enter your number for A :

فرض کنید مقدار عددی 2 را وارد کرده و کلید enter از کیبورد را فشار دهیم . تا اینجا در پنجره Command ، عبارات زیر نمایش داده شده است :

please enter your number for A :   2
 
A =
 
     2
 
please enter your string for B :  

حال برای متغیر B ، عبارت 'cat' را وارد کرده و کلید enter از کیبورد را فشار می دهیم . کل عبارات نمایش داده شده به صورت زیر می باشد :

please enter your number for A :   2
 
A =
 
     2
 
please enter your string for B :   'cat'
 
B =
 
cat  

 

مشاهده می کنید که متغیر B به صورت رشته cat (شامل سه کاراکتر) تعریف شده است .


 
ساخت تابع (function) در متلب matlab با استفاده از m-file :
ساعت ۱۱:٥۱ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب ، simulink-سیمولینک

ساخت تابع (function) در متلب matlab با استفاده از m-file :

در متلب با استفاده از دستور inline نیز می توان تابع ساخت ، اما ساخت تابع با استفاده از m-file انتخابی حرفه ای تر می باشد . معمولا برنامه نویسان حرفه ای چارچوب برنامه را در یک فایل اصلی می نویسند و بخش های مختلف برنامه را به صورت تابع هایی می نویسند که یک یا چند ورودی را دریافت کرده و محاسبات لازم را انجام می دهند و سپس یک یا چند خروجی را بر می گردانند . برنامه نویس عملکرد هر تابع را جداگانه چک می کند و سپس زمانی که از بابت آنها خیالش راحت شد تمرکز اصلی خود را بر روی فایل اصلی که حاوی چارچوب برنامه می باشد ، می گذارد و تنها در فایل اصلی ، ارجاعاتی به توابع ساخته شده خواهد داد .

چنانچه شما هم از این شیوه استفاده کنید ، پس از مدتی صاحب بانکی از توابع خواهید شد که در نوشتن برنامه های جدید ، بسیار به شما کمک می کند .

با مثالی ساده ، نحوه ساخت یک تابع با استفاده از m-file را شرح می دهیم :

مثال :

می خواهیم تابعی به نام add بسازیم که در ورودی دو عدد را دریافت کرده و سپس مجموع آن دو عدد را در خروجی برگرداند . ابتدا یک m-file خالی باز می کنیم و کد زیر را در آن می نویسیم :

function [z] = add(x,y)
z=x+y;

در کد بالا ، کلمه function اعلام می کند که این m-file به صورت یک تابع می باشد . خروجی با نام z و دو ورودی با نام های x و y مشخص شده اند . کلمه ای که بعد از علامت تساوی قرار می گیرد (در اینجا کلمه add) ، نام تابع را مشخص می کند و باید در مرحله بعد m-file را دقیقا با همین نام ذخیره کنیم . بنابراین m-file را با نام add ذخیره می کنیم .

همان طور که مشاهده کردید ، خط اول ، ساختار تابع را مشخص می کند و در خط های بعدی تنها کاری که باید انجام دهیم این است که روابط بین ورودی ها و خروجی را تعریف کنیم که در این مثال تنها یک جمع ساده می باشد .

پس از ذخیره کردن m-file دیگر کاری با آن نداریم . باید دقت کنید که اگر بخواهید این m-file را با گزینه Save and run در بالای پنجره ، اجرا کنید با یک خطا مواجه می شوید زیرا این m-file یک تابع است .

اکنون باید تابع ساخته شده را تست کنیم . دستور زیر را در پنجره Command می نویسیم (و یا در یک m-file دیگر) :

B=2;
C=3;
A=add(B,C)

نتیجه :

A =
 
     5

نکته :

باید m-file تابع درون Current folder و یا سایر مسیرهای مشخص شده برای متلب باشد . در غیر این صورت ، متلب یک پیغام خطا را نمایش می دهد . این پیغام خطا به این دلیل است که متلب نمی تواند m-file با نام add را پیدا کند .

نکته :

 در دستور فوق مشاهده کردیم که نام هایی که برای ورودی و خروجی تابع add استفاده کردیم (A و B و C) با نام های درون خود کدهای تابع add متفاوت است (x و y و z) . بنابراین احتیاجی نیست که نگران نام های به کار رفته در ساختار تابع باشید و از هر نام دلخواهی برای ارجاع به تابع می توانید استفاده کنید .

 



 
Save و load کردن متغیرها در متلب :
ساعت ۱۱:٥٠ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

Save و load کردن متغیرها در متلب :

مرجع

گاهی اوقات شما می خواهید work sapce خود را ذخیره کنید. یعنی بر فرض برنامه ای را اجرا کرده اید و خروجی های آن که الان داخل work space هستش رو می خواهید ذخیره کنید. این کار با دستور save انجام میشه.

فرض کنید در داخل work space متغیرهای زیر وجود داره:

a=2

b=-1

حال می خواهید work space را ذخیره کنید. از دستور زیر استفاده کنید:

save نام فایل

نام فایل ، در واقع اسم فایلی است که قراره دو متغیرهای درون work space در اون ذخیره بشه. من اسم فایلم رو می گذارم data :

>>save  data

 

با این دستور فایلی به نام data و با پسوند mat. در داخل current diectory شما ایجاد خواهد شد که دو متغیر a و b داخل آن هستند. حالا با خیال راحت میتونیم work space رو با دستور clear پاک کنیم.

پسوند mat. مخصوص برنامه متلب بوده و با هیچ برنامه دیگری باز نمیشه. پس اگر که شما فایلی با پسوند mat داشته باشید وبخواهید اون رو باز کنید حتما نیاز به متلب خواهید داشت.

اما چگونه متغیرهایی را که ذخیره کرده ایم، فرا خوانی کنیم؟ این کار با دستور load انجام میشه:

load  نام فایل

در نتیجه باید بنویسیم:

>>load data

با این دستور میبینید که دو متغیر a و b به داخل workspace اضافه شدند.

نکته اول: اگر که میخواهید فایل را با پسوند mat. ذخیره کنید نیازی نیست که در دستور save بعد از نام فایل پسوند را هم بنویسید. یعنی دو دستور زیر تفاوتی با یکدیگر ندارند:

>>save data

یا

>>save data.mat

اگر بخواهید هنگام ذخیره سازی فقط برخی متغیرها رو ذخیره کنید کافی است در دستور save پس از نام فایل با فاصله نام متغیرهای مورد نظر خود را بنویسید. با این کار فقط آن متغیرهایی که شما نوشته اید درون فایل ذخیره خواهند شد. در حال حاضر دو متغیر a وb درون workspce هستند. من فقط میخواهم b را ذخیره کنم:

>>save data b

یا

>>save data.mat b

در هنگام load کردن هم می توانید برخی متغیرها را فراخوانی کنید. فرض کنید درون فایلی با نام result سه متغیر a و b و c ذخیره شده اند. با دستور زیر فقط متغیر c به داخل workspce بر می گردد:

>>load result c

یا

>>load result.mat c

تمامی این دخیره سازی ها و باز خوانی ها در current directory جاری انجام می شود. اما فرض کنید که current directory فعلی شما \:c می باشد و شما می خواهید متغیرهای داخل workspace را درون درایو \:D ذخیره کنید. در این حالت باید مسیر ذخیره سازی و یا فراخوانی را در دستورات save  یا load بنویسید:

نکته: در این حالت در هنگام ذخیره سازی و بازخوانی حتما باید پسوند mat. را بنویسیم.

>>save('D:\data.mat')

این دستور فایلی به نام data.mat درون درایو D می سازد که کل متغیرهای worksapce درون آن هستند.

>>save('D:\data.mat','a')

این دستور فایلی به نام data.mat درون درایو D می سازد که فقط متغیر a درون آن می باشد.

>>load('E:\test\result.mat')

این دستور فایلی به نام result.mat را که درون پوشه test در درایو E می باشد را باز می خواند.

>>load('E:\test\result.mat','a','b')

این دستور تنها متغیرهای a و b را از درون فایلی به نام result.mat که درپوشه test در درایو E می باشد  باز می خواند.

اما همانطور که گفته شد فایل با پیوند mat. را تنها برنامه متلب می تواند باز کند. اما شاید شما بخواهید فایلی با پسوند dat یا txt ایجاد کنید که مثلا بتوانید با Notepad آن را باز کنید. با دستور زیر این کار را انجام می دهیم:

>>save پسوند.نام فایل -ascii

عبارت ascii- جزو syntax دستور می باشد و باید آن را بنویسیم.

>>save data.dat -ascii

حال با خیال راحت می توانیم workspce را پاک کنیم. برای فراخوانی نیز از دستور load استفاده می کنیم:

>>load data.dat

توجه کنید که عبارت ascii- فقط در هنگام save نوشته می شود.

اما اتفاق مهتری افتاده است. می بینید که با فراخوانی داده ها دیگر متغیرهای a و b به داخل workspace باز نگشته اند و متغیری با همان نام فایل ذخیره شده باز گشته است که مقدار عددی متغیرها در داخل آن به صورت ستونی قرار گرفته اند. پس باید حواسمان باشد که در این حالت دیگر متغیرهای ما از بین خواهند رفت.

اگر بخواهیم در هنگام ذخیره سازی تنها برخی از متغیرها را ذخیره کنیم باید همانند قبل بعد از نام فایل نام آن متغیرها را بنویسیم:

>>save data.dat a -ascii

با این دستور تنها متغیر  a  ذخیره می شود. نکته مهمتر این است که دیگر نمی توانیم مثل قبل در هنگام load کردن برخی از متغیرها را فراخوانی کنیم چراکه اساسا دیگر متغیری وجود ندارد که بخواهیم آن را فراخوانی کنیم. چرا که در این حالت تنها یک متغیر با نام همان فایل ذخیره شده باز می گردد.

>>load data.dat

اگر بخواهیم ذخیره سازی در درایو دیگری صورت بگیرد باید مثل قبل آدرس را نیز بنویسیم. به دستورات زیر توجه کنید:

 >>save('D:\data.dat','-ascii')

با این دستور فایلی به نام data.dat درون درایو D ایجاد می گردد.

>>save('E:\test\result.txt','b','-ascii')

با این دستور فایلی به نام result.txt درون پوشه test در درایو E ذخیره می شود که تنها مقدار متغیر b را درون خود دارد.(توجه کنید که تنها مقدار عددی متغیر b را درون خود دارد و خود متغیر b ذخیره نمی شود.)

>>load('F:\test\data.txt')

با این دستور فایلی به نام data.txt از داخل پوشه test از درایو F فراخوانی می شود.

نکته: اگر درون current directory جاری سه فایل با نامهای data.mat و data.dat و data.txt وجود داشته باشد دستور load data فایل data.mat را فراخوانی خواهد کرد. برای فایلهای با پسوند دیگر حتما هنگام دخیره سازی و فراخوانی باید پسوند نوشته شود.


 
استفاده کردن از یک mfile داخل محیط سیمولینک simulink
ساعت ۱۱:٤٥ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب ، simulink-سیمولینک

استفاده کردن از یک mfile داخل محیط سیمولینک simulink

ابتدا از سیمولینک باید گزینه user defined function و بعد matlab function را انتخاب کنیم و به داخل فایل سیمولینک ببریم این بلوک یک ورودی و یک خروجی دارد و اگر لازم باشد چند ورودی چند خروجی داشته باشیم از بلوکهای mux و demux استفاده می‌کنیم.


 
استفاده از Mfile در داخل سیمولینک برای دادن مقادیر اولیه به بلوک‌های سیمولینک
ساعت ۱۱:۳٤ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب ، simulink-سیمولینک

استفاده از Mfile در داخل سیمولینک برای دادن مقادیر اولیه به بلوک‌های سیمولینک

استفاده از Mfile در داخل سیمولینک برای دادن مقادیر اولیه به بلوک‌های سیمولینک

مخصوصا در سیستم‌های گسسته برای دادن مقدار به ثابت زمانی به طور همزمان به تمام بلوک‌ها

ابتدا از Simulink گزینه Ports & Subsystems را اانتخاب کرده و بعد بلوک Subsystem را به داخل فایل سیمولینک مورد نظر می‌بریم. در انجا روی بلوک کلیک کرده و محتویات ان که یک In1 و Out1 و سیم رابط هست را پاک می‌کنیم. دوباره به فایل سیمولینک برگشته وروی بلوک Subsystem کلیک راست کرده و گزینه Block Property را می‌زنیم و در انجا منوی Callbacks را انتخاب کرده و از میان گزینه‌های Callback functions list گزینه OpenFcn‌را برگزیده و نام Mfile‌ای را که می‌خواهیم قبل از اجرای سیمولینک اجرا شود در انجا می‌نویسیم. حال کافی است که قبل از هر اجرای سیمولینک روی این بلوک دوبار کلیک کنیم تا مقدار اولیه دادن انجام شود.



 
m-file ها در متلب matlab:
ساعت ۱۱:۳٠ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

m-file ها در متلب matlab:

مرجع

m-file ها در متلب :

چنانچه بخواهید برنامه ای طولانی و پیچیده بنویسید ، دیگر پنجره Command جوابگوی نیاز شما نیست و به محیطی فراتر از آن برای نوشتن دستورات و تصحیح کردن آنها نیاز دارید . متلب برای این گونه موارد امکان ساخت m-file ها را فراهم کرده است . شما می توانید در یک m-file تمامی دستورات خود را نوشته و تنها بر روی یک دکمه گرافیکی کلیک کرده و سپس نتیجه اجرای دستورات را در پنجره Command ببینید .

ساخت یک m-file در متلب :

برای ساخت یک m-file جدید می توانید از هر یک از روش های زیر استفاده کنید : 
1- در بالای پنجره اصلی نرم افزار متلب بر روی گزینه New script کلیک کنید . این گزینه به شکل matlab photo 10 می باشد . 
2- با نگه داشتن کلید Ctrl و فشار دادن کلید N از کیبورد ، این کار را انجام دهید . 
3- در پنجره Command بنویسید edit و سپس کلید enter از کیبورد را فشار بدهید . 
هر یک از روش های بالا را که انتخاب کنید ، نتیجه این است که متلب یک پنجره خالی باز می کند که می توانید در آن دستورات خود را اجرا کنید . 
توصیه می شود اولین دستوری که در یک m-file می نویسید ، دستور clear all باشد تا تمامی متغیرهایی که قبلا در متلب تعریف شده است را پاک کند و اختلالی در روند اجرای برنامه ایجاد نشود . 
باید دقت داشته باشید که در نرم افزار متلب ، m-file ها برای دو هدف اصلی به کار می روند ، کاربرد اول آن نوشتن برنامه های پیچیده وطولانی و کاربرد دوم آن ساخت تابع می باشد . ساخت تابع با استفاده از m-file را در مباحث بعدی توضیح خواهیم داد . در این مبحث تنها در مورد نوشتن برنامه در m-file ها صحبت خواهیم کرد . 
پس از آنکه دستورات برنامه را در m-file نوشتیم ابتدا باید با استفاده از گزینه Save در بالای همان پنجره m-file ، آن را ذخیره کنیم . همچنین با نگه داشتن کلید Ctrl و فشار دادن کلید S ، می توانید این کار را انجام دهید . 
سپس برای اجرای برنامه باید بر روی گزینه Save and run که به شکل  می باشد کلیک کنید تا نتایج برنامه در پنجره Command نمایش داده شود . همانطور که از نام این گزینه مشخص است ، این گزینه عمل ذخیره کردن را هم انجام می دهد یعنی اگر تغییراتی در برنامه ایجاد کنید و سپس بر روی این گزینه کلیک کنید ، این تغییرات در m-file ذخیره می شود . اگر قبلا فایل ذخیره نشده باشد ابتدا از شما می خواهد که نامی برای آن انتخاب کرده و سپس آن را ذخیره کنید . 
m-file ها دارای پسوند m می باشند (به عنوان مثال : program.m) .

اجرای دستورات درون یک m-file بدون باز کردن آن :

حتی بدون باز کردن یک m-file نیز می توان برنامه نوشته شده در آن را اجرا کرد . برای این منظور باید ابتدا پنجره Current Folder به گونه ای باشد که فولدر حاوی m-file مورد نظرمان را نمایش بدهد . مثلا فرض کنید نام m-file حاوی برنامه ، program.m باشد بنابراین باید نام فایل program.m را در پنجره Current Folder ببینیم . سپس تنها کافی است که در پنجره Command بنویسیم program و سپس کلید enter از کیبورد را فشار دهیم . دقت شود که نباید پسوند .m نوشته شود . نتیجه اجرای دستورات در پنجره Command نمایش داده خواهد شد .

نوشتن توضیحات در m-file :

زمانی که یک برنامه طولانی بنویسید ، به دلیل حجم زیاد دستورات ، ممکن است بخشی از روند برنامه نویسی را فراموش کنید . گذشت زمان نیز بسیار تاثیرگذار است و گاهی آن قدر از زمان نوشتن برنامه گذشته است که خود برنامه نویس مجبور می شود برنامه را بارها بخواند تا درک کند که از چه روش هایی استفاده کرده است و گاهی نوشتن یک برنامه جدید به صرفه تر است و زمان کمتری نیاز دارد . بر حسب تجربه ثابت شده است که با استفاده از 2 تکنیک زیر می توان این مشکل را تا حد زیادی برطرف کرد . 
1- انتخاب هوشمندانه نام متغیرها به گونه ای که هدف استفاده از آنها را بتوان از نامشان به طور کامل درک کرد . 
2- می توانیم هنگام نوشتن برنامه ، توضیحاتی را در کنار کدها بنویسیم تا با خواندن آنها خود برنامه نویس یا هر شخص دیگری به راحتی درک کند که روش های استفاده شده در برنامه چیست .

در متلب چنانچه از علامت درصد ((%)) استفاده کنیم ، تمامی نوشته های بعد از علامت درصد به صورت توضیح در نظر گرفته می شوند . به مثال زیر توجه کنید :

مثال :

x=2
% www.kelidestan.com
y=3

نتیجه :

x =
      2
  
y =
      3

همان طور که مشاهده می کنید ، www.kelidestan.com به عنوان دستور در نظر گرفته نشده و در خروجی نیز نمایش داده نشده است .

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

مثال :

x=2
% www.kelidestan.com
% this is a simple code
y=3

نتیجه :

 x =

      2
  
y =
 
     3



 
فرق دستور size با length
ساعت ۱۱:٢۸ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

ممکن است در برنامه نویسی با نرم افزار متلب matlab برای گرفتن اندازه یک بردار از دستور سایز استفاده کرده و حاصل را در متغیری بریزید و برنامه شما جواب ندهد و علتش را هم به سادگی پیدا نکنید! احتمالا جواب در فرق دستور  size  با length  نهفته است دستور size دو عدد میدهد که درواقع تعداد سطر و ستون را میدهد و بردار را هم به چشم ماتریس میبیند ولی دستور length فقط یک عدد که اگر ماتریس باشد تعداد ستونهای آن و اگر بردار باشدتعداد اعضای آن بردار را میدهد. البته اگر از دستور size به فرم های زیر استفاده کنید باز یک عدد خواهید گرفت که دستور اولی تعداد سطرها و دستور دومی تعداد ستونها را میدهد. 

 

size(x,1)

size(x,2)


 
خواندن فایلهای نرم افزارهای دیگر توسط متلب ( باز کردن فایلهای اکسل توسط متلب)
ساعت ۱۱:٢٥ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

خواندن فایلهای نرم افزارهای دیگر توسط متلب ( باز کردن فایلهای اکسل excel توسط متلب matlab)

برای باز کردن تصویر توسط متلب و همچنین اضافه کردن نویز به تصویر از دستورات زیر استفاده کنید

>>imread

>>imnoise

برای باز کردن فایلهای اکسل excel توسط متلب matlab میتوانید از دستور زیر استفاده کنید

 

y=xlsread('I:\AirpassTSM.xlsx');

 

مطالب تکمیلی زیر را هم از این لینک برداشتم

سوال

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

بصورت گره اند چه باید بکنم میشه کمکم کنی؟

 

جواب

نرم افزار MATLAB متلب یک تابع دارد به نام xlsread که می تواند یک فایل excel را بخواند. البته این تایع با کلمات فارسی مشکل دارد. البته با رقم به خوبی کار می کند.

شما کافی است مسیر فایل را در ورودی بدهید و متلب فایل را خوانده و به صورت یک ماتریس به ما می دهد. ماتریس خوانده شده هنوز نیاز به کار دارد تا داده های اصلی را بدهد.

 

پیشنهاد من ایجاد یک متغیر دلخواه در متلب است و باز کردن این متغیر 

سپس دیتا را از اکسل ، کپی کنید و بیاید در پنجره متغیر و راست کلیک کنید و گزینه یکی بعد از paste را بزنید که مخصوص اکسل طراحی شده است.



 
پیدا کردن ریشه های یک معادله توسط متلب (matlab)
ساعت ۱۱:۱٤ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

برای پیدا کردن ریشه های معادله ax^2+bx+c=0 از دستور زیر استفاده میشود.

>>roots([a b c])


 
علت یکی نبودن محاسبه دستی واریانس با دستور متلب matlab
ساعت ۱۱:۱۱ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

دستور var در متلب matlab واریانس را محاسبه میکند ولی به جای تقسیم بر N بر N-1 تقسیم میکند برای همین جواب دستور فوق با جوابی که شما به صورت دستی به دست میآورید فرق خواهد داشت برای حل این مشکل کافی است تا دستور فوق را به صورت زیر استفاده کنید

 

>>var(x,1)

دقت شود که اگر x ماتریس باشد این دستور واریانس هر ستون را محاسبه میکند یعنی به تعداد ستونها عدد میدهد

نکته بعدی: دستور cov در متلب نیز همین مشکل را دارد.


 
ضرب کردن دو تا چندجمله ای در متلب
ساعت ۱۱:٠٩ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب

برای ضرب کردن دو تا چند جمله ای در متلب matlab از دستور conv به صورت زیر استفاده میکنیم.

 (s^2 +s+1)*((2s^2+2s+1)

>>conv([1,1,1],[2,2,1])


 
تفاوت دستور rand با randn در متلب
ساعت ۱:٥٥ ‎ب.ظ روز سه‌شنبه ۱۳٩۳/٦/۱۸  کلمات کلیدی: matlab-متلب

تابع (B=rand (A اعداد تصادفی حقیقی بین  (0,1] تولید می‌کند.

 تابع (B=randn(A اعداد تصادفی حقیقی به‌گونه‌ای تولید می‌کند که میانگین صفر و انحراف معیار یک ‌باشد. که این همان نویزی هست که لازم داریم


 
دستور reshape برای ماتریس
ساعت ٩:٠٥ ‎ق.ظ روز سه‌شنبه ۱۳٩۳/٦/۱۸  کلمات کلیدی: matlab-متلب

قبلنا یه دستور تو متلب دیده بودم که میتونستین درایه های یه ماتریس رو بریزین تو یه بردار الان هر چی گشتم پیداش نکردم به دستور فوق رسیدم که خیلی بهتره و شما میتونین یه ماتریس رو به هر سایزی خواستین تغییرش بدین


 
label زدن به شکلهای رسم شده در متلب
ساعت ۸:٥٩ ‎ق.ظ روز سه‌شنبه ۱۳٩۳/٦/۱۸  کلمات کلیدی: matlab-متلب

اگر شکلی از متلب را میخواهید داخل فایل ورد اضافه کنید به نظرم به جای اینکه اول شکل را رسم کنید وبعد روی ان تغییراتی از قبیل label زدن را اعمال کنید بهتر است داخل برنامه متلب که شکل رسم میشود همان جا برنامه ای بنویسید که label بزند مثلا با دستور زیر میتوانید به محور x در دو سطر label بزنید

 >>xlabel({'first line';'second line'})

و با دستور زیر میتوانید فونت و سایز نوشته را هم تغییر دهید

>>ylabel('George''s Popularity','fontsize',12,'fontweight','b')