مقدمات MATLAB 2

دستور sum

همانطور که می دانید، دستور:

sum(A)

جمع عضوهای هر ستون از ماتریس A را بر می گرداند. یعنی اگر A ماتریسی به ابعاد mxn باشد، حاصل

sum(A)

برداری است nx1 که اعضای آن، مجموع اعضای هر ستون از A است.

colsums = sum(A);

 

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

یک راه این است، که از ترانهاده ماتریس sum می گیریم:

rowsums = sum(A’)

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

اما برای این کار، راه ساده تری هست: پارامتر دیگری به دستور sum اضافه می کنیم:

dimsums = sum(A,n)

که در آن، n بُعدی است که می خواهیم عمل مجموع گیری روی آن صورت گیرد. اگر بخواهیم از اعضای ستونها مجموع بگیرد، n را 1 قرار می دهیم که همان پیش فرض است. اگر از اعضای ستونها مجموع بگیرد، n را 2 قرار می دهیم. اگر حتی ماتریس ما ابعاد بالاتری داشت و خواستیم از آن بُعد مجموع بگیرد، n را برابر آن بُعد قرار می‌دهیم.

 

اگر بخواهیم مجموع کل درایه های ماتریس را به دست آوریم، راهش (که خودم تا چند وقت پیش به کار می بردم) این بود

sum(sum(A))

اگر ابعاد ماتریس بالا برود، کار مجموع گیری دردسرساز می شود. برای مجموع گیری از کل درایه های ماتریس، راه ساده تری پیشنهاد می شود:

sum(A(:))

این دستور در واقع اول کل اعضای ماتریس A را به صورت یک بردار ستونی در می آورد، بعد از آن مجموع می گیرد. استفاده از

A(:)

در خیلی جاها بدرد خواهد خورد.

*****************************************************

هدف از این مجموعه آموزش الگوریتم و فلوچارت است که از اصول برنامه نویسی به هر زبانی و از جمله MATLAB می باشد و برای کسانی که تازه برنامه نویسی را شروع کرده اند توصیه می شود.

شامل مثال های زیر:

  • چهار عمل اصلی
  • مساحت و محیط مستطیل
  • مساحت و محیط دایره
  • مساحت و حجم کره
  • ترتیب نزولی سه عدد
  • تصمیم گیری بر روی سه عدد
  • جابجایی مقادیر دو متغیر
  • تعیین قائم الزاویه بودن مثلث

دانلود فایل آموزشی (لینک اصلی)

دانلود فایل آموزشی (لینک پشتیبان)

**********************************************

اگر مقدار يك متغير را بخواهيد بدانيد مي توانيد آن را با نوشتن نام متغير مشاهده كنيد. در اين صورت MATLAB نام متغير و به دنبال آن علامت تساوي را نشان داده و سپس مقدار را در سطر يا سطور بعد مي نويسد. براي ديدن مقدار متغير بدون آنكه لازم باشد دوباره نام آن و علامت تساوي را مشاهده كنيد مي توانيد دستور disp را بكار ببريد.

» x=[2 4 5];

» disp(x)

2          4         5

» y='www.Mathworks.ir';

» disp(y)

www.Mathworks.ir

پنجره MATLAB را مي توانيد با دستور clc پاك كنيد:

» clc

 

همانطور كه قبلا" ديديد دستور format compact باعث مي شود كه خطوط اضافي هنگام ارائه نتايج حذف گردند.

دستور format داراي كاربردهاي فراوان ديگري نيز هست. فرض كنيد كه مي خواهيد مولفه هاي بردار زير را روي صفحه نمايش ببينيد:

 

» v=exp(-10*(1:5))

v =

1.0e-004 *

0.4540             0.0000             0.0000             0.0000             0.0000

 

واضح است كه در حالت فعلي نمي توانيد مقادير مولفه ها را بخوانيد. در اين وضعيت مي توانيد با كمك دستور format نحوه نمايش اعداد را تغيير دهيد:

 

» format long

» v

v =

1.0e-004 *

Columns 1 through 4

0.45399929762485     0.00002061153622     0.00000000093576    0.00000000000004

Column 5

0.00000000000000

مشاهده مي كنيد با وجود اينكه اين دستور تعداد اعداد نشان داده شده بعد از مميز را افزايش مي دهد ولي هنوز قادر نيست كه همه مولفه هاي بردار مورد نظر را بطور مناسبي نمايش دهد. در چنين حالتي بهتر است اعداد را با استفاده از نماد علمي به نمايش بگذاريد:

 

» format short e

» v

v =

4.5400e-005    2.0612e-009    9.3576e-014   4.2484e-018   1.9287e-022

 

براي اطلاع بيشتر از امكانات دستور format توصيه مي شود كه توضيحات مربوط به اين دستور را در help مطالعه كنيد.

*****************************

عمليات عضو به عضو روي آرايه ها

انجام عمليات جبري روي آرايه ها در MATLAB نيازمند دقت است. بطور كلي دو نوع عمليات مي توان روي آرايه ها انجام داد:

١-عمليات عضو به عضو،

٢-عمليات برداري-ماتريسي

اشتباه گرفتن اين دو نوع عمليات باعث بروز مشكل در محاسبات مي گردد.

دو بردار زير را در نظر بگيريد:

» a=[1 2 3];

» b=[2 -1 0];

فرض كنيد كه مي خواهيد اين دو را در هم ضرب كنيد:

» a*b

??? Error using ==> *

Inner matrix dimensions must agree.

دليل گرفتن پيام خطا از عمل فوق اين است كه در MATLAB  استفاده از علامت ضرب به تنهايي به معناي ضرب ماتريسي است. بنابراين عمل بالا را مي توان با ترانهاده بردار دوم به انجام رسانيد:

» a*b'

ans =

0

اين عمل در حقيقت ضرب اسكالر دو ماتريس است، يعني

1*2+2*(-1)+3*3=0

حال اگر بخواهيد ضرب عضو به عضو اين دو بردار را به دست آوريد بايد يك نقطه قبل از علامت

ضرب بگذاريد:

» a.*b

ans =

2          -2         0

همين دستورالعمل را مي توان براي تقسيم و به توان رساندن آرايه ها بكار بست:

» a.^2

ans =

1          4          9

در صورت فراموش كردن نقطه قبل از علامت توان:

» a^2

??? Error using ==> ^

Matrix must be square.

*****************************************

عمليات ماتريسي روي آرايه ها

مي توان دو نوع عمليات روي آرايه ها انجام داد كه به آنها عمليات ماتريسي و MATLAB در عمليات عضو به عضو مي گويند. عمليات ماتريسي شامل محاسبه ترانهاده، ضرب ماتريسي، جمع و تفريق آرايه هاي هم اندازه و غيره مي شود. ترانهاده يك ماتريس با كمك علامت پريم بدست مي آيد:

» r=rand(2,4)

r =

0.9501             0.6068                        0.8913             0.4565

0.2311             0.4860                        0.7621             0.0185

» r'

ans =

0.9501             0.2311

0.6068             0.4860

0.8913             0.7621

0.4565             0.0185

ضرب ماتريسي با استفاده از علامت * و جمع و تفريق ماتريسها با استفاده از علامتهاي مربوطه انجام مي گيرند

» v=[1:4];

» r*v'

ans =

6.6636

3.5634

 

» s=[0:3; 2:-.5:.5];

» s+r

ans =

0.9501             1.6068             2.8913             3.4565

2.2311             1.9860            1.7621             0.5185

تعدادي از توابع ماتريسي در زير آورده شده اند:

det(a)               دترمينان ماتريس مربعي

inv(a)              ماتريس وارون

eig(a)               مقادير و بردارهاي ويژه ماتريس مربعي

poly(a)             چند جمله اي مشخصه ماتريس

 

******************************

ذخيره كردن و بازيابي داده ها:

در صورتي كه بخواهيد كليه متغيرهاي موجود در محيط كار workspace را ذخيره كنيد از save دستور استفاده كنيد:

>> save

Saving to: matlab.mat

ذخيره مي نمايد. داده هاي موجود در اين پرونده را matlab.mat اين دستور، داده ها را در پرونده مي توان به طريق زير بازيابي نمود:

>> load

Loading from: matlab.mat

 

 

درصورتي كه لازم باشد مي توانيد نام پرونده ذخيره را خودتان تعيين كنيد:

>> save myfile

و آن را با دستور زير بازيابي نماييد:

>> load myfile

اگر مي خواهيد كه فقط بعضي از متغيرها را ذخيره كنيد، نام آنها را بعد از نام پرونده بياوريد:

>> save myfile t f

در صورتي كه بخواهيد تعدادي از متغيرها را از حافظه پاك كنيد كافي است نام آنها را پس از

دستور clear بياوريد:

>> who

Your variables are:

a f n t w

ans m p v

>> clear a f

>> who

Your variables are:

ans n t w

m p v

در صورت استفاده از دستور clear بدون ذكر نام متغيري پس از آن، كليه متغيرها از حافظه پاك مي شوند.

توجه كنيد كه دستور save به صورتي كه در بالا نشان داده شد داده ها را به شكل binary ذخيره مي نمايد و فقط در محيط MATLAB مي توانيد اين داده ها را بازيابي كنيد. در اين صورت  متغيرها با همان نامي كه ذخيره شده اند، بازيابي مي گردند. در مواردي كه نياز داشته باشيد كه داده ها را در محيطهاي ديگري بازيابي نماييد بايد متغيرها را به صورت ascii ذخيره كنيد:

>> save name t -ascii

>> clear

>> load name

>> who

Your variables are:

name

همانطور كه در بالا مشاهده مي كنيد هنگام بازيابي يك پرونده ascii نام متغير، همان نام پرونده خواهد بود. ضمنا" پرونده ascii ايجاد شده فاقد دنباله است مگر آنكه دنباله را در نام (extension)  پرونده ذكر كنيد.

 

مهندس عربعامری 09361849951 آماده متخصص انواع شبیه سازی ها در رشته برق قدرت

منبع: http://mathworks.ir/matlab-learning



مطالب مشابه :


صوت در متلب

صوت در متلب پردازش صوت در متلب matlab انواع خدمات سیمولینک کارشناسی سیم پاور شامل :




پردازش صدا با مطلب ( بخش دوم )

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




ژنراتور سنکرون چیست؟

دریافت صدا در متلب و اعمال ورودی‌ها simulink پردازش صوت و تصویر همزمان پردازش صوت در متلب MATLAB




پردازش صدا با مطلب ( بخش اول )

امروزه پردازش صوت کاربردی های دستورات موجود در باکس پردازش صوت رو توضیح می دهیم




مروری بر اینورترها

دریافت صدا در متلب و اعمال ورودی‌ها simulink پردازش صوت و تصویر همزمان پردازش صوت در متلب MATLAB




چند جمله ای ها در متلب MATLAB

پردازش صوت پردازش صوت در متلب matlab انواع خدمات سیمولینک کارشناسی سیم پاور شامل :




رفع مشکلات متلب در ویندوز7

پردازش صوت در متلب matlab انواع خدمات سیمولینک کارشناسی سیم پاور شامل : سیستم‌های کنترلی با




كنترل پايداري سيستمهاي قدرت در حالت گذرا

پردازش صوت در متلب matlab انواع خدمات سیمولینک کارشناسی سیم پاور شامل : سیستم‌های کنترلی با




مقدمات MATLAB 2

دریافت صدا در متلب و اعمال ورودی‌ها simulink پردازش صوت و تصویر همزمان پردازش صوت در متلب MATLAB




فروش پروژه اینورتر تک فاز

دریافت صدا در متلب و اعمال ورودی‌ها simulink پردازش صوت و تصویر همزمان پردازش صوت در متلب MATLAB




برچسب :