آموزش متلب

ایجاد بردار در متلب

ایجاد بردار در متلب

بردار  آرایه یک – بعدی از اعداد است. matlab  اجازه دو نوع بردار را می دهد:

  • بردار سطری
  • بردار ستونی

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

برای مثال،

r=[7 8 9 10 11]

مثال دیگر ،matlabتوضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:

 

363

matlab توضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:

364

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

c=[7;8;9;10;11]

matlabتوضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:

365

 

ایجاد ماتریس ها

یک ماتریس  آرایه دوبعدی از اعداد است.

در matlab ، یک ماتریس بوسیله وارد کردن متوالی با  فاصله یا کا ما برای جدا کردن عناصر  ایجاد شده است.و آخر هر سطر توسط یک سمی کالن مشخص شده است و پایان هر سطر توسط سمی کالن مشخص شده است.برای مثال اجازه دهید یک ماتریس 3×3   ایجاد کنیم:

m=[123;456;789]

matlabتوضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:

366

 

حال براي تمرین بیشتر چند مثال ساده را بررسی می کنیم.

مثال 1: برنامه زیر مانند دستور find عمل می کند و

ورودي آن یک بردار است و خروجی آن محل قرارگیري

عناصري از ورودي است که در شرط صدق می کنند. مثلا

اگر ورودي[1 3 -4 5 -6] باشد خروجی با شرط ورودي

کوچکتر از صفر (x<0) به صورت [3 5] خواهد بود. یعنی

عناصر سوم و پنجم در شرط صدق می کنند.

vector = [1, 3, -4, 5, -6];

n=1;

x=length(vector);

for i=1:x;

if vector(1,i)<=0;

index(1,n)=i;

n=n+1;

end

end

آموزش مقدماتی برنامه نویسی با استفاده با نرم افزار MATLAB

11

n در این برنامه یک شمارنده است و براي ساختن ماتریس

خروجی به کار می رود. یعنی هر گاه یکی از عناصر ورودي

در شرط صدق کند، یکی بیشتر میشود. استفاده از این

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

تکرار مشخص است و برابر طول بردار ورودي است از حلقه-

ي for استفاده میشود. حال اگر به جاي دستور

:باشیم داشته index(1,n)=i

Index(1,n)=vector(1,i)

خروجی چه می شود؟

مثال 2: می خواهیم قابلیت برنامه قبل را براي ورودي

ماتریس افزایش دهیم. فرض کنید می خواهیم خروجی

همان ورودي باشد ولی به جاي عناصري که در شرط صدق

نمی کنند صفر داشته باشیم. حال احتیاج به دو حلقه ي

for داریم. یکی تعداد سطرها و دیگري تعداد سطون ها را

بشمارد.

Mat=[1,2,3;4,5,6];

[x,y]=size(mat);

for i1=1:x;

for i2=1:y;

if mat(i1,i2)<=0;

 

index(i1,i2)=mat(i1,i2);

else;

index(i1,i2)=0;

end

end

end

مثال 3: همان مثال قبل ولی می خواهیم خروجی را کمی

تغییر دهیم. میخواهیم خروجی یک n*2 باشد که n و

تعداد درایه هاي ماتریس ورودي است که در شرط صدق

می کنند. ستون اول شماره سطر و ستون دوم شمارهي

ستون درایهي مورد نظر باشد. به عنوان مثال اگر ورودي به

شکل زیر باشد:

Input=[-1 2

3 -2]

و شرط کوچکتر از صفر بودن باشد، خروجی به شکل زیر

باشد:

Output=[1 1

2 2]

مشخص است که نیاز به یک شمارنده داریم و دو حلقه ي

for براي بررسی تمام عناصر ماتریس ورودي و یک دستور

if که شرط را چک کند. برنامه به صورت زیر خواهد بود:

Mat=[1,2,3;4,5,6];

n=1;

[x,y]=size(mat);

for i1=1:x;

for i2=1:y;

if mat(i1,i2)<=0;

index(n,1)=i1;

index(n,2)=i2;

n=n+1;

end

end

end

مثال 4 : برنامه ي معادل دستور sum :

ورودي یک ماتریس و خروجی یک بردار که عنصر ستون iام

آن برابر وجموع عناصر ستون iام ماتریس ورودي.

vector = [1, 3, -4, 5, -6];

x=length(v);

v2(1,1)=v(1,1);

for i=2:x;

v2(1,i)=v2(1,i-1)+v(1,i);

end

آموزش مقدماتی برنامه نویسی با استفاده با نرم افزار MATLAB

12

تعریف function

برنامه ها را در قالب فایل هایی با پسوند m. با نام Mfile

می سازیم. هر برنامه در واقع می تواند یک تابع باشد و چند

ورودي و چند خروجی داشته باشد.

 

وجود ورودي و خروجی الزامی نیست.

برنامه یا همان تابع همیشه با کلمه ي function آغاز می

شود. مثال:

Function y=hello(x)

Y=x+2;

End

در این برنامه ي ساده x ورودي وy خروجی است. Hello

اسم اختیاري برنامه است. برنامه را با همین اسم ذخیره می

کنیم. براي اجراي برنامه بعد از ذخیره سازي در پنجره ي

command تایپ می کنیم:

M=hello(2)

در نتیجه m=4 می شود. در اینجا ذکر این نکته الزامی

است که x و y متغیر هاي محلی خود برنامه هستند و ربطی

به بیرون از برنامه ندارند.

حال مثال زیر را در نظر بگیرید که برنامه دو متغیر ورودي و

دو متغیر خروجی دارد:

Function [x,y]=hello2(x,y)

Y=x+w;

Z=x-w;

End

بعد از ذخیره سازي برنامه با نام hello2، براي اجراي آن در

پنجره ي command تایپ می کنیم:

[m,n]=hello2(1,2)

با اجراي دستور n=3 و m=-1 می شود.

برنامه نویسی

حال به صورت جدي تر وارد مبحث برنامه نویسی می شویم.

چهار دستور کلیدي for و while و if و switch را در

اینجا معرفی می کنیم.

ابتدا condition را تعریف می کنیم. عبارتی است که می

تواند صفر یا 1 باشد. مثال:

A=-1;

B=2;

X=[-4 -1 1 4];

Out=x.*(a<=x & x<b)

عبارت درون پرانتز یک conditionاست. و برابر است با:

(a<=x & x<b)=[0 1 1 0]

در واقع شرط درون پرانتز روي تک تک عناصر ماتریس x

امتحان می شود، اگر برقرار بود نتیجه 1 و در غیر این

صورت 0 می شود. نتیجه همانور که دیده می شود یک

ماتریس با ابعاد ماتریس x است. حال اگر ماتریس حاصل در

x ضرب نقطه اي شود نتیجه به صورت زیر خواهد بود:

Out=[0 -1 1 0]

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

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

14 و 14 تعریف نشده است. قبلا نمونهي یک

condition را در دستور find داشتیم.

مثال 5: می خواهیم برنامهاي بنویسیم که انتگرال یک تابع

را در بازهاي مشخص را به دست آورد. از قوائد اولیهي

انتگرالگیري استفاده میکنیم. همانطور که می دانید در این

روش مساحت زیر تابع در بازه ي مورد نظر را به چند

مستطیل تقسیم کرده و مساحت آنها را حساب کره و با هم

جمع می کنیم. هر چه تعداد این مستطیلها بیشتر باشد

جواب دقیقتر خواهد بود ولی حجم محاسبات بیشتر می

شود. ولی ما نگران بالا رفتن حجم محاسبات نیستیم.

آموزش مقدماتی برنامه نویسی با استفاده با نرم افزار MATLAB

بردار در متلب

 

بازه ي a تا b را به n بخش تقسیم می کنیم. عرض هر

مستطیل برابر b-a)/n) و ارتفاع مستطیل iام برابر

(f(a+i*(b-a)/n است. برنامه به صورت زیر خواهد بود:

function myintegral(a,b,n)

function y=f(x)

y=sin(x);

end

w=(b-a)/n;

s=0;

for i=1:n;

s=s+wf(a+(i-1)w);

end

 

همانطور که در برنامه ي بالا دیده می شود یک تابع در بدنه

ي تابع اصلی نوشته شده است. وجود end براي زیر برنامه

لازم است. در ادامه ي برنامه از این زیر تابع استفاده شده

است. در زیر تابع تابعی که قرار است از آن انتگرال گرفته

شود مشخص شده است. می توانیم این تابع را تغییر داده و

برنامه را دوباره ذخیره کنیم. N تعداد مستطیل هاست. S

مقدار انتگرال است که در یک حلقه که به تعداد

مستطیلهاست تگرار می شود و مقدار هر مستطیل را با

مقدار انتگرال جمع می کند.

بردار در متلب

حال میخواهیم برنامه را به گونهاي تغییر دهیم تا تابع

انتگرال رسم شود:

function myintegral(a,b,n)

function y=f(x)

y=sin(x);

end

w=(b-a)/n;

s=0;

for i=1:n;

s(1,i+1)=s(1,i)+w*f(a+(i-

1)*w);

x(1,i+1)=a+(i-1)*w;

end

plot(x,s)

بر خلاف برنامه ي قبلی s را به صورت یک ماتریس تولید

می کند که مقدار درایه ي iام آن برابر مجمع مستطیل هاي

اوا تا iام. در این حلقه عناصر محور x هم براي رسم نمودار

ساخته می شوند.

مثال 6: می خواهیم مشتق یک تابع را در بازه اي تعیین

شده رسم کنیم. بازه را به n زیر بازه تقسیم می کنیم و تابع

را در هر زیر بازه را با یک خط تقریب می زنیم و مشتق تابع

در نقطه ي ابتداي این زیر بازه برابر شیب این خط است.

برنامه به صورت زیر است:

function difff(a,b,n)

w=(b-a)/n;

for i=1:n;

x(1,i)=a+w*(i-1);

y(1,i)=(f(a+w*i)-

f(a+w*(i-1)))/w;

end

plot(x,y)

 

مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *