0

*** آموزش قدم به قدم متلب ***

 
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

*** آموزش قدم به قدم متلب ***

با سلام خدمت مدیران، دوستان و کاربران گرامی

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

با توجه به این که در جای دیگه همچین آموزشی ندیدم با هماهنگی مدیریت بخش FaridP30 این تاپیکو ایجاد کردم 

یه نکته در رابطه با همین موضوع جدید وجود داره که در تاپیک های دیگه هم قطعا مشاهده کردید و من فقط یادآوری میکنم

1. از ارسال پست اسپم در این تاپیک خودداری کنید.

تشکر

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:34 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

متلب (MATLAB) یک محیط نرم افزاری برای انجام محاسبات عددی و یک زبان برنامه نویسی نسل چهارم است. 

واژهٔ متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامه نویسی مربوطه ست که از ترکیب دو واژهٔ MATrix (ماتریس) و LABoratory (آزمایشگاه) ایجاد شده است.

این نام حاکی از رویکرد ماتریس محور برنامه ست، که در آن حتی اعداد منفرد هم به عنوان ماتریس در نظر گرفته می شوند.

MATLAB -1 نرم افزاری برای انجام کارهای ریاضی، آماری، مهندسی و.... می باشد.

MATLAB = MATrix Laboratory -2 (آزمایشگاه ماتریسی)

3- در 1984 توسط شركت Mathwork تأسيس شد. 

4- در اوايل دهه 1970 توسط Cleve Moler به وجود آمده.

5- در اواخر دهۀ 70 میلادی در دانشگاه New Mexico توسعه داده شد.

6- در اوايل دهه 1980 با زبان C بازنويسی شد.


از این زبان می توان در حل دستگاه معادلات جبری ، ترسیم نمودارهای ریاضی ، حل معادلات دیفرانسیل ، پردازش سیگنال ها ، پیاده سازی الگوریتم ها ، طراحی واسط های کاربری گرافیکی (GUI) ، ایجاد اینترفیس (interface) جهت ارتباط با نرم افزارهای دیگر و ... استفاده کرد.

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:34 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

متلب مانند زبان php و برخلاف اکثر زبان های برنامه نویسی مثل Java یا C یک زبان مقدارگرا (Value Oriented) می باشد ، به این معنا که متغییر ها به خودی خود نوعی ندارند و مقدار ذخیره شده در آن ها دارای نوع می باشد.
 
پس متلب نیازی به تعیین ابعاد متغییر ندارد و خودش مقدار حافظۀ پیش فرضی را به آن تخصیص می دهد.
 
برای نامگذاری متغییرها ، متلب بین حروف کوچیک و بزرگ تفاوت قائل می شود ، و 31 کاراکتر اول را برای متغییر در نظر میگیرد. (نام متغییر از 31 کاراکتر نمی تواند بیشتر باشد.)
 
بعضی از مهمترين انواع متغير در متلب :
 
کد:
double  نقطه اعشار با دقت مضاعف 8 بايت 
struct  نوع تعريف شده توسط کاربر
single نقطه اعشار 4 بايت    
uint8 عدد صحيح بي علامت 8 بيتي
uint16 عدد صحيح بي علامت 16 بيتي
uint32 عدد صحيحي بي علامت 32 بيتي
uint64 عدد صحيحي بي علامت 64 بيتي
int8  عدد صحيح 8 بيتي
int16  عدد صحيح 16 بيتي
int32 عدد صحيح 32 بيتي
int64 عدد صحيح 64 بيتي
عملگرهای منطقی و رابطه ای در متلب :
 
کد:
&
 
و ترکیب عطفی
 
|
 
یا ترکیب فصلی
 
~
 
نقیض
 
xor
 
یا مانع جمع
 
any
 
تعیین کننده اینکه آیا مولفه غیر صفر در یک بردار وجود دارد یا خیر
 
all
 
تعیین کننده اینکه آیا همه مقایسه ها درست است یا خیر
 
کد:
==
 
 
مساوی
 
~=
 
 
نا مساوی
 
 <
 
 
کوچکتر 
 
 
 
بزرگتر 
 
<=
 
 
کوچکتر یا مساوی
 
>=
 
 
بزرگتر یا مساوی
عملگرهای ریاضی پر کاربرد در متلب :
 
کد:
جمع +
تفریق -
ضرب *
تقسیم /
به توان^
ترتيب حق تقدم: ^ > / \ * > + -

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:34 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

در این پست شما رو با بعضی از توابع در متلب آشنا میکنم
 
بعضی از توابع رياضی در متلب :
 
 
کد:
abs conj log10
acos exp real
asin fix imag
acosh round rem(x,y)
asinh gcd(x,y) sign
atan lcm(x,y) sqrt
atanh log
 
توابع کار با اعداد مختلط :
 
کد:
abs  angle real imag
 
برای مشاهده توابع مقدماتی در متلب از دستور Help elfun >> در پنجرۀ فرمان استفاده می کنیم که در پست های بعدی نحوۀ استفاده از این روش رو توضیح خواهم داد. (جهت آگاهی)
و همچنین برای مشاهدۀ توابع پیشرفته از دستورات Help specfun و Help elmat استفاده می کنیم. (جهت آگاهی)

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:34 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

در پست های قبلی با متغیرها و توابع آشنا شدید ، در این پست با مثال هایی نحوۀ استفاده اون ها رو یاد می گیرید.
 
خب فرض کنید من متغیری با نام x تعریف کردم و میخوام مقداری رو در اون ذخیره کنم پس کدم به این شکل نوشته میشه در برنامه :
 
 
 
کد PHP:
x=23  
 
با نوشتن دستور x=23 متغیری به نام x در حافظه ایجاد میشه و مقدار 23 در اون ریخته میشه
 
اگه دستور به صورت x=23 نوشته بشه متلب مقدار اونو مجددا نمایش میده و اگه به صورت ;x=23 نوشته بشه متلب اون مقدار رو نمایش نمیده.
 
در Matlab نیاز به تعریف متغیر وجود نداره و همۀ متغیرها از نوع(double (8 بایت فرض میشه.
 
Matlab زبانی حساس به حالت حروف (Case sensitive) است. 
 
حالا فرض کنید که ما میخوایم متغیر رشته ای تعریف کنیم ، من میام و یه متغییر با نام s تعریف میکنم و مقدار Hello Matlab رو در اون میریزم پس کدم به این شکل خواهد بود:
 
کد PHP:
s = 'Hello Matlab'  
دقت کنید که استفاده از علامت ' برای ایجاد رشته ها ضروریه و اگه از این علامت استفاده نشه، با پیغام خطا در برنامه مواجه میشیم 
 
کد به شکل غلط :
 
کد PHP:
s = Hello Matlab  

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:34 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

در چند پست قبلی چند نوع از توابع رو معرفی کردم تا باهاشون آشنا بشید ، خب در این پست با طرز تعریف و فراخوانی و استفادشون آشنا میشید :
 
در متلب مثل زبان های برنامه نویسی دیگه می تونیم برای برنامه تابع بنویسیم.
تابع ها یک m-file هستن، توابع می تونن با پذیرفتن یک آرگومان ورودی، یک آرگومان خروجی تولید کنن، بسیاری از دستورات خود متلب به عنوان m فایل اجرا میشن.
 
در متلب با استفاده از دستور inline هم می تونیم تابع بسازیم، اما ساختن تابع با استفاده از m-file انتخاب استاندارتری ست.
 
توابع در m فایل ها باید با کلمه function شروع بشن، و با یک متغیر-های خروجی، و بعد از اون یک علامت مساوی و پس از اون نام تابع و در آخر متغیر-های ورودی می باشد. 
توابع باید ورودی و خروجی داشته باشن، اگه توابع بیش از یک ورودی یا خروجی داشته باشن باید با علامت کاما (,) از هم جداشون کنیم.
اگه یک یا بیش از یک ورودی داشته باشیم باید در داخل پرانتز قرارشون بدیم.
 
نمونه :
 
کد:
function a = category(x,y,s,p)
مثال :
 
یک m file به صورت زیر ایجاد می کنیم (کلماتی که با رنگ قرمز مشخص شده اند باید دقیقا نوشته وفراخوانی بشن)
 
کد:
function y = afun(a,b)
 
afun اسم تابع است. y برگشتی تابع است. a و b ورودی تابع.
 
بعد از نوشتن m file فایلو با نام تابع (در اینجا اسم تابع afun) و پسوند m. ذخیره می کنیم.
 
به نکات زید دقت کنید تا در کدنویسی مشکلی بوجو نیاد و به خطا برخورد نکنید :
 
1- نام تابع بايد هم نام با m file باشد. 
 
2- می تونیم در يک m file چندين تابع داشته باشیم. اولين تابع ، تابع اصلی خونده ميشه و بقيه زير تابع گفته ميشن و اسم m file بايد هم نام با تابع اصلی باشد.
 
3- متغیرهای موجود در یک تابع محلی هستند و توسط توابع دیگر قابل دسترسی نمی باشند.

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:35 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

در متلب مشابه زبان های برنامه نویسی دستورات حلقه و شرط وجود دارد.
 
دستور for
 
مثلا :
کد PHP:
for x=1:0.1:2 
    <یک یا چند دستور> 
end  
x از 1 تا 2 با گام 0.1 تغییر میکنه.
 
دستور while
کد PHP:
while    شرط 
   >دستور یا دستورات< 
end  
دستور if
 
 
کد PHP:
if  شرط 
   >دستور یا دستورات< 
end  
 
دستور if-else
کد PHP:
if     شرط 
>دستور یا دستورات< 
else 
>دستور یا دستورات< 
end  
دستور switch
کد PHP:
switch متغیر  
case  مقدار1  
>دستور یا دستورات< 
case   مقدار2 
>دستور یا دستورات< 
otherwise 
>دستور یا دستورات< 
end  
اگه هیچ کدوم از case ها برقرار نباشه بخش otherwise اجرا میشه.
 
در پست های بعدی مثال هایی برای هر دستور و شرط بیان میکنم ...

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:35 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

در پست قبلی دستورات حلقه و شرط ها در متلب رو براتون تعریف کردم و بنا شد تا در پست بعدی مثال هایی رو بزنم تا شفاف تر بشه چون در متلب طرز فراخوانی کمی فرق میکنه ، خب ...
 
 
دستور for
 
کد PHP:
for a = 1.0: -0.1: 0.0
   disp(a)
end  
خروجی :
 
کد PHP:
1
 
    0.9000
 
    0.8000
 
    0.7000
 
    0.6000
 
    0.5000
 
    0.4000
 
    0.3000
 
    0.2000
 
    0.1000
 
     0  
دستور while
 
کد PHP:
a = 10;
% while loop execution 
while( a < 20 )
  fprintf('value of a: %d\n', a);
  a = a + 1;
end  
 
خروجی :
 
کد PHP:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19  
 
شما به نوع طرز فراخوانی و استفاده متغییرها دقت کنید در پست های بعدی دستورات به کار رفته در مثال هایی که میزنمو براتون توضیح خواهم داد ، هدف آشنایی با نحوۀ استفاده از دستوراته ...
 
دستور if
 
کد PHP:
a = 10;
% check the condition using if statement 
   if a < 20 
   % if condition is true then print the following 
       fprintf('a is less than 20\n' );
   end
fprintf('value of a is : %d\n', a);  
 
خروجی :
 
کد PHP:
a is less than 20
value of a is : 10  
دستور if-else
 
کد PHP:
a = 100;
% check the boolean condition 
   if a < 20 
        % if condition is true then print the following 
       fprintf('a is less than 20\n' );
   else
       % if condition is false then print the following 
       fprintf('a is not less than 20\n' );
   end
   fprintf('value of a is : %d\n', a);  
 
خروجی :
 
کد PHP:
a is not less than 20
value of a is : 100  
دستور switch
 
کد PHP:
grade = 'B';
   switch(grade)
   case 'A' 
      fprintf('Excellent!\n' );
   case 'B' 
       fprintf('Well done\n' );
   case 'C' 
      fprintf('Well done\n' );
   case 'D'
      fprintf('You passed\n' );
   
   case 'F' 
     fprintf('Better try again\n' );
     
   otherwise
     fprintf('Invalid grade\n' );
   end  
 
خروجی :
 
کد PHP:
Well done
Your grade is  B  

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:35 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

پاسخ به:*** آموزش قدم به قدم متلب ***

ايجاد آرايه 
 
روشهای ايجاد آرايه :
 
1- با استفاده از علائم ; ، , و [ ]
2- با استفاده از علامت :
3- با استفاده از توابع linspace و logspace
4- با استفاده از ترکيب یکی از روشهای فوق
 
ايجاد آرايه با استفاده از علائم ; ، , و [ ]
 
از علامت ; برای تعيين سطر جديد و از علامت , برای تعيين ستون جديد استفاده می شود.
 
مثال :
 
کد PHP:
>> a=[1,2,3;4,5,6]
a=
    1 2 3
    4 5 6
>> b=[1,2,3,4,5,6]
b=
    1 2 3 4 5 6  
به جای علامت ; از enter و به جای علامت , از فاصله خالی (space) میتونیم استفاده کنیم.
 
مثلا :
 
کد PHP:
>> c=[1 2,3
        4 5 6;7 8,9]
c=
    1   2   3
    4   5   6
    7   8   9  
استفاده از علامت “:”
 
در مواقعی که عناصر يک آرايه رابطه خطی با يکديگر داشته باشند از اين روش می توان استفاده کرد.
شکل کلی دستور بصورت زير است :
 
کد PHP:
ArrayName=first : step : last  
اگر step حذف شود، مقدار 1 به جای آن بکار میرود.
اگر last کوچکتر از first باشد، بايد step منفی باشد در غير اين صورت مقدار آرايه تهی خواهد شد.
 
مثلا :
 
کد PHP:
>>z=1:5
z=
    1 2 3 4 5  
 
موارد 3 و 4 در بخش بعدی انشاالله ...

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:35 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

ايجاد آرايه با استفاده از توابع linsapce و logspace

با ارائه عناصر اول و آخر و طول آرايه به اين توابع می توان آرايه هايی خطی و لگاريتمی بدست آورد.
 
دستور :
 
کد PHP:
ArrayName=linspace(first,last,length)  
مثال :
 
کد PHP:
>>x=linspace(0,1,11)*pi;
>>y=logspace(1,3,3)
y=
    10  100  1000  
برای هر تابعی که نام بردم مثال جداگانه زدم تا شفاف بشه ، دو کد بالا برای هر تابعی جداست.
 
ايجاد آرايه با استفاده از ترکيب یکی از روشهای فوق
 
مثال زیر ترکیبی از 4 روشیه که درباره آرایه ها گفتم هم در بخش اول و هم دوم پس دقت کنید خیلی سادست :
 
کد PHP:
>> x=[0,1,2, 4:2:12 ,18,19]
x=
    0 1 2  4 6 8 10 12 18 19
>> y=[10,1,7,4,6,-1 ; linspace(0,10,6) ; 5:-1:0]
y=
    10  1  7  4  6  -1
    0    2  4  6  8  10
    5    4  3  2  1   0  

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:35 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

ايجاد آرايه با استفاده از توابع linsapce و logspace

عمليات رياضی بر روی آرايه ها
 
 
1- عمليات اسکالر- آرايه : - , + , ^ , / , \ , *
 
2- عمليات عنصری : - , + , .^ , . / , .\ , .* 
 
 
 
عمليات رياضی اسکالر- آرايه :
 
با استفاده از عملگرهای رياضی متلب به راحتی می توان عمليات رياضی اسکالر- آرايه را انجام داد.
 
مثال :
 
کد PHP:
>> x=[1 2 3;4 5 6; 7 8 9];
>> y=2*x + 4
y=
     6      8      10
    12    14    16
    18    20    22  
عمليات رياضی عنصری بين دو آرايه :
 
برای این منظور بايد دو آرايه حتما هم بعد باشند.
 
مثال :
 
کد PHP:
>> a=[2 4 6; 3 5 6; 10 -1 0];
>> b=[-1 0 0; 2 1 1; 0 0 3];
>> c= (2*a ./ (b+1)) .^ 2
c =
   Inf    64   144
     4    25    36
   400     4     0  
استخراج بخشی از آرايه :
 
دستور کلی برای این کار به شکل زیر است فقط دقت کنید که در رابطه با m فایل ها در بخش های قبلی توضیح دادم
 
کد PHP:
m2=m1( آرايه ای از انديس ها , آرايه ای از انديس ها )  
 
مثال :
 
کد PHP:
>>a=[1 2 3
        4 5 6
        7 8 9];
>>k1=[1,2];k2=[2,3];
>>b=a(k1,k2)
b=
    2    3
    5    6  

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:35 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

ايجاد آرايه با استفاده از توابع linsapce و logspace

متغيرهايی که در محيط متلب ايجاد می شوند در بخشی از حافظه بنام محيط کاری متلب ذخيره می گردند.
 
فضای کاری برنامه های اسکريپت متلب با فضای کاری متلب يکسان است، يعنی اگر متغيری در محيط متلب تعريف شده باشد در يک برنامه اسکريپت می توان از آن استفاده کرد و برعکس. 
اما برنامه های تابعی متلب دارای فضای کاری مختص به خود هستند و متغيرهای آنها در فضای کاری متلب وارد نمی شود.
 
 
نکاتی در مورد فضای کاری متلب:
 
1- زمان اعتبار متغيرها 
2- دستور who و whos
3- ذخيره و بازيابی متغيرها: دستورات save و load
 
 
زمان اعتبار متغيرها :
 
متغيرهايی که در فضای کاری تعريف می شوند تنها در دو حالت زير از حافظه پاک خواهند شد :
 
1- خروج از متلب
2- استفاده از دستور clear :
 
 
دستور زیر تمامی متغيرها را از حافظه پاک می کند
 
کد PHP:
>> clear  
 
با دستور زیر تنها متغيرهای نامبرده شده از حافظه پاک می شوند
 
کد PHP:
>> clear a b c  
دستورات who و whos
 
با استفاده از اين دو دستور می توان اسامی ( مشخصات) متغيرهای موجود در فضای کاری را بدست آورد.
کد PHP:
>> who 
Your variables are:  
    a b c 
 
>> whos 
 Name      Size                   Bytes  Class 
 
  a         1x1                        8  double array 
  b         1x1                        8  double array 
  c         1x1                        8  double array  
 
مورد 3 در پست بعدی انشالله ...

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:36 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

ايجاد آرايه با استفاده از توابع linsapce و logspace

مورد 3 که در پست قبلی نام بردم 
 
ذخيره و بازيابی متغيرها: دستورات save و load
 
در صورتی که بخواهيم پس از خروج از محيط متلب همه يا بعضی از متغيرهای موجود در فضای کاری برای استفاده های بعدی ذخيره گردند از دستور save استفاده مي کنيم.
با دستور load می توان متغيرهای ذخيره شده را به فضای کاری بازگرداند.
 
مثال :
 
کد PHP:
>>a=5; b=4; c=7; 
>>save c:\myfile.mat a c; 
>>clear  همه متغيرها پاک مي شوند 
>>a  
??? Undefined function or variable 'a‘ 
>> load c:\myfile.mat 
>>a 
    a= 
        5 
>>b 
??? Undefined function or variable 'a‘  
در کد بالا فقط به نحوۀ ذخیره و بازیابی و استفاده دستورات دقت کنید 
 
 
فرم کلی کاربرد دستورات save و load بصورت زير است :
 
کد PHP:
save [filename] [variables] 
Load [filename] [variables]  
 
درصورتی که اسم فايل نوشته نشود فايل پيش فرض matlab.mat مورد استفاده قرار خواهد گرفت و درصورتی که نام متغيرها نوشته نشود، تمامی متغيرهای موجود در فضای کاری ذخيره و يا تمامی متغيرهای ذخيره شده در فايل بازيابی می شوند.

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:36 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

ايجاد آرايه با استفاده از توابع linsapce و logspace

تعریف ماتریس و محاسبات ماتریسی
 
نحوه تعریف ماتریس
 
برای تعریف ماتریس در MATLAB به صورت زیر عمل می کنیم :
 
کد PHP:
AA=[3  -9  4;  -5  3  6]  
محاسبات ماتریسی
 
1- جمع و تفریق با + و -
2- ضرب دو ماتریس (با ابعاد m*n و n*p) : با *
3- ترانهاده ماتریس: با '
 
نکته اگر بخواهیم عناصر دو ماتریس را نظیر به نظیر در هم ضرب کنیم به جای * از .* استفاده می کنیم.
 
4- ./ برای تقسیم نظیر به نظیر استفاده می شود.
5- ^ برای به توان رساندن ماتريس به كار مي رود. مثلا A^2 ، A*A را محاسبه می کند. 
6- .^ : به توان رسانی نظیر به نظیر A.^B
 
 
مثال :
 
 
کد PHP:
A=[1 2 3;4 5 6;3 4 7]; 
B=[2 3; 1 1;4 5];  
 
در اینجا یک ماتریس 3*3 به نام A و یک ماتریس 2*3 به نام B تعریف کرده ایم.
C=A*B
 
این دستور ضرب ماتریسی A در B را انجام می دهد و حاصل که ماتریسی 2*3 است در C قرار می گیرد.
D=B*A
 
این دستور اشتباه است چون نمی توان یک ماتریس 2*3 را در ماتریس 3*3 ضرب کرد.
E=A^2
 
ماتریس 3*3 A را در خودش ضرب می کند. حاصل ماتریس 3*3 E است.
F=B^2
 
خطا اعلام می شود. چون B^2 یعنی B*B . اما نمی توان یک ماتریس 2*3 را در 2*3 ضرب کرد.
G=B.^2
 
این دستور درست است و معادل B.*B یعنی ضرب نظیر به نظیر عناصر B است.

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:36 AM
تشکرات از این پست
siryahya
siryahya
کاربر طلایی1
تاریخ عضویت : اسفند 1389 
تعداد پست ها : 158652
محل سکونت : ▂▃▄▅▆▇█Tabriz█▇▆▅▄▃▂

ايجاد آرايه با استفاده از توابع linsapce و logspace

حل دستگاه معادلات خطی در متلب
 
با استفاده از عمليات ضرب و تقسيم ماتريسی در متلب به راحتی می توان دستگاه های معادلات خطی را حتی در مواردی که تعداد معادلات با تعداد متغيرها مساوی نباشند، حل کرد.
برای این منظور بايد بردار سمت راست معادلات را بر ماتريس ضرايب متغيرها تقسيم کرد.
 
به طور مثال دستگاه زیرو در نظر بگیرید :
 
 
 
 
 
عملیات کدنویسیش به این صورتی خواهد بود که می بینید
 
کد PHP:
>>a=[1   2   3               >>b=[366 ; 804 ; 351];
         4   5   6
          7   8   0]; 
    
>> x= a \ b    يا       >>x=a ^ (-1) * b    يا      >>x=inv(a) * b
x=
    25
    22
    99  
تعدادی از توابع ماتريسی
 
det : دترمينان ماتريس را محاسبه می کند
inv : معکوس ماتريس را محاسبه می کند
pinv: شبه معکوس يک ماتريس غيرمربعی را محاسبه می کند
trace: مجموع عناصر قطر اصلی يک ماتريس را بازمی گرداند
 
 
چند دستور پرکاربرد در ایجاد ماتریس ها و بردارها 
 
یک ماتریس تهی ایجاد می کند >>> A=[ ] 
 
کد PHP:
x=0:0.1:1  
کد بالا یک بردار ایجاد می کند که عنصر اول آن 0 است، عناصر بعدی با اضافه کردن 0.1 (گام افزایش) به دست می آیند تا زمانی که به 1 برسیم یعنی :
کد PHP:
x=[0  0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1]  
کد PHP:
x=0:4  
اگر مانند این مثال، گام افزایش ذکر نشود 1 در نظر گرفته می شود :
 
کد PHP:
x=[0 1 2 3 3];  

ترکی زبان قربون صدقه رفتنه داریم که: گوزلرین گیله‌سین قاداسین آلیم که یعنی درد و بلای مردمک چشات به جونم …!.

دوشنبه 21 اردیبهشت 1394  3:36 AM
تشکرات از این پست
دسترسی سریع به انجمن ها