ایجاد بردار در متلب
بردار آرایه یک – بعدی از اعداد است. matlab اجازه دو نوع بردار را می دهد:
- بردار سطری
- بردار ستونی
بردارهای سطری بوسیله گذاشتن مجموعه ای از عناصر در قلاب های گوشه دار ایجاد شده اند، با استفاده از فاصله یا کاما آن عناصر محدود می شوند.
برای مثال،
r=[7 8 9 10 11]
مثال دیگر ،matlabتوضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:
matlab توضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:
بردارهای ستونی بوسیله گذاشتن مجموعه ای از عناصر در قلاب های گوشه دار ایجاد شده اند،عناصر با استفاده از سمی کالن محدود می شوند.
c=[7;8;9;10;11]
matlabتوضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:
ایجاد ماتریس ها
یک ماتریس آرایه دوبعدی از اعداد است.
در matlab ، یک ماتریس بوسیله وارد کردن متوالی با فاصله یا کا ما برای جدا کردن عناصر ایجاد شده است.و آخر هر سطر توسط یک سمی کالن مشخص شده است و پایان هر سطر توسط سمی کالن مشخص شده است.برای مثال اجازه دهید یک ماتریس 3×3 ایجاد کنیم:
m=[123;456;789]
matlabتوضیح بالا را اجرا خواهد کرد و نتیجه زیر را باز میگرداند:
حال براي تمرین بیشتر چند مثال ساده را بررسی می کنیم.
مثال 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 ,