رفتن به مطلب

پست های پیشنهاد شده

شما در گذشته، با نحوه‌ی ساختن ماتریس‌ها آشنا شدید، اینجا، کمی بیشتر روی این موضوع کار می‌کنیم و باز تاکید دارم که حتمن، سعی کنید برین و یه کتاب خوب درباره ماتریسها پیدا کنید، و خوداموزی کنید

متلب بر پایه و اساس ماتریس‌ها بناگذاری شده

 

چند ماتریس می‌سازیم


a=[2 3; 3 4];
x=[5 6];
a=[a,x]

برای نمایش گذاشتن یک بخش دلخواه و یا جاگذاری عددی دلخواه در ماتریس، به شیوه زیر عمل می‌کنیم


a(3,2) % in dastur adade 6 ro be namayesh mizare
a(3,3)=7 % tamrin konid natije begirid

استفاده از :

 

یکی از عملگرهای قدرتمند در کنترل ماتریس‌هاست


a=[1 2 3;4 5 6;7 8 9];
a(2:3,1:2)
a(3,:) % means all elements in third row
a(1:2,2:3)=ones(2)

b=a(:)


پ.ن: نمی‌دونم چطور توضیح بدم اینا رو، خوب وقتی اینا رو توی برنامه وارد کنید، نتیجه رو میبیند دیگه، نیازی به وارد کردن نتایج در اینجا نیست

 

نکته: ادامه این بحث رو انشالا امشب میام انجام میدم، امروز خیلی خستم

لینک ارسال

Repmat

این دستور، گاهی برای گسترش دادن یک ماتریس بکار می‌ره، به این طریق که همون ماتریس رو، به همون شیوه که هست، در سطر یا ستون گسترش می‌ده

به مثال زیر دقت کنید:


a=[1 2 3];

 

[left]repmat(a, [3 1])
[/left]

 

[left]repmat( a, 3, 1)
[/left]

 

 

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

 

Deleting rows and columns

در مثال‌های زیر، شما یاد خواهید گرفت که چطور یک بخش از ماتریس حذف کنید، لطفن قبل از استفاده از دستورات داده شده، یک ماتریس مناسب تهیه کنید

    
[left][color=black][font=&quot]a(:,2)=[ ];[/font][/color][/left]

 

 

دستور بالا، دومین ستون رو به کلی پاک خواهد کرد. به یاد داشته باشید که شما نمی‌تونید پارامتر رو به تنهایی ( مانند مثال زیر ) پاک کنید در حالی که سایر پارامتر‌ها وجود دارند، اما این امکان رو دارین که یک پارامتر رو جایگذرین کنید

    
[left][color=black][font=&quot]a(1,2)=[ ];[/font][/color][/left]

 

به مثال زیر دقت کنید

    
[left][color=black][font=&quot]a=[1 2 3;4 5 6;7 8 9];[/font][/color][/left]

 [color=black][font=&quot]a(2:2:6)=[ ][/font][/color]

متوجه موضوع شدید؟ چه اتفاقی افتاد!

ابتدا ستون‌ها حذف شدن و یک ماتریس سطری رو پیش رو دارید، سپس پارامتر‌های 2، 4 و ششم حذف شدن

 

 

Elementary matrices

با استفاده از دستور زیر، شما قادر خواهید بود که گروهی از ماتریس‌های ساده رو ببینید ( دستورات استفاده از اونها رو )

 

    
[left][font=&quot]Help elmat[/font][/left]

 

 

برای مثال، دستورات zeros ، ones و rand ماتریس‌های صفر، 1 و رندوم رو خواهند ساخت، که شما با وارد کردن n در جلوی انها ( درون پرانتز ) قادر خواهید بود یک ماتریس n*n تهیه کنید یا همینطور n*m، بدین صورت

Eyes(n) یا eyes(n,m)

مثال زیر رو وارد کنید

 

[left][right][font=&quot]Eye(3)[/font][/right]


[/left]


Matlab has a number of other function which generated special matrices, such as gallery, hadamard, hankel, hilb, toeplitz, vander, etc. see help elmat.

 

 

 

پ.ن:بدلیل اهمیت موضوع این بخش، و همینطور اینکه آموزش بخش مقدماتی مطلب، تقریبن 75 درصد راه رو پیموده، این بخش رو به آهستگی پیش می‌ریم و امیدواریم کسانی که این آموزش رو می‌بینند بخوبی ازش بهره ببرند تا در آینده نزدیک، پس از اتمام شدن این مجموعه، به سراغ کتاب دیگری برویم

 

با تشکر

 

( از اینکه کمی بی‌نظم شده شرمند، توی world نوشته بودم، اینجا وارد کردم، دیگه به این شیوه نمایش می‌ده )

لینک ارسال

matrices and for

 


a=[1 2 3;4 5 6;7 8 9];
if v=a
disp(v')
end

 

و حالا نتیجه رو ببینید، سعی کنید از نتیجه نکته برداری کنید تا در حل مسایل به کمکتون بیاد

 

ماتریس چند بعدی

الان می‌خوایم یه ماتریس چند بعدی بسازیم، با دیدن نتایج حاصله، سعی در یادگیری اون داشته باشین


a=[1:2 ; 3:4];
a(:, :, 2) = [5:6 ; 7:8]

خودم در این باره زیاد نمی‌دونم و تا الان برام کاربردی نداشته

 

عملیات ضرب ماتریس

 

دو ماتریس A و B‌ داریم، و C=AB


A=[1 2; 3 4];
B=[5 6; 7 8];

و حال تمرینات زیر رو انجام دهید


C=A*B
D=A.*B

و نکته قابل توجه اینجاس که مقدار A*B‌ با مقدار B*A برابر نیست، حتمن امتحان کنید

 

و حال برای مقدار توانی، A*A برابر با A^2 میشه، و آیا این دو با هم برابر هستند ؟ A.^2 چی ؟

حتمن موارد بالا رو در برنامه مورد اجرا قرار بدهید تا درک صحیحی از موضوعات پیش اومده داشته باشید

 

در زیر، یک سری از دستور‌های ماتریسی رو مشاهده می‌کنید

 

attachment.php?attachmentid=832&stc=1&d=1276454324

لینک ارسال

String

برای وارد کردن رشته‌ها، بایستی به شکل زیر عمل کنید

s=' Hi There? '

متوجه شدین ؟ بایستی جمله مورد نظر رو بین ' قرار بدین

 

Input string

 

برای وارد کردن رشته‌ها از طریق دستور input، کافیست به صورت زیر عمل کنید ( مثال زیر )

 

name= input( [color=Blue]'[/color] Enter your surname:[color=Blue] '[/color] ,[color=Blue] '[/color] s [color=Blue]'[/color] ) 

Other String Function

 

attachment.php?attachmentid=845&stc=1&d=1276712889

 

Eval & Feval

 


>> help [color=DarkOrchid]eval[/color]
EVAL Execute string with MATLAB expression.
EVAL(s), where s is a string, causes MATLAB to execute
the string as an expression or statement.

[X,Y,Z,...] = EVAL(s) returns output arguments from the
expression in string s.

The input strings to EVAL are often created by
concatenating substrings and variables inside square
brackets. For example:

Generate a sequence of matrices named M1 through M12:

for n = 1:12
eval(['M' num2str(n) ' = magic(n)'])
end

Run a selected M-file script.

D = {'odedemo'; 'sunspots'; 'fitdemo'};
n = input('Select a demo number: ');
eval(D{n})


>> help [color=DarkOrchid]feval[/color]
FEVAL Execute the specified function.
FEVAL(F,x1,...,xn) evaluates the function specified by a function
handle or function name, F, at the given arguments, x1,...,xn.
For example, if F = @foo, FEVAL(F,9.64) is the same as foo(9.64).

If a function handle is bound to more than one built-in or
M-file, (that is, it represents a set of overloaded functions),
then the data type of the arguments x1 through xn, determines
which function is executed.

FEVAL is usually used inside functions which take function
handles or function strings as arguments. Examples include
FZERO and EZPLOT.

[y1,..,yn] = FEVAL(F,x1,...,xn) returns multiple output arguments.

Within methods that overload built-in functions, use BUILTIN(F,...)
to execute the original built-in function. Note that when using
BUILTIN, F must be a function name and not a function handle.


پ.ن: این دو متن آخر رو خودم به خوبی نمی‌دونم، و چند بار، از دوستانم شنیدم که مورد نیازشون شده ...

به همین دلیل، متن help خود برنامه رو اینجا گذاشتم

با تشکر ....

 

این فصل هم تموم شد، و بزودی متلب مقدماتی رو به پایان می‌رسونیم، و این مطالبی که گفته شده، اگر دوستان سعی کنن در کنار درساشون، از این دستورات استفاده کنن و به تمرین بپردازن، بخوبی می‌تونن این مهم رو یاد بگیرن و مطمئن باشین در کلاس‌ها نیز که ثبت نام کنین، چیزی فراتر از این بهتون نمی‌گن، با این تفاوت که اونجا مجبور به حضور در کلاس و همینطور انجام تکالیف هستین

string.JPG

لینک ارسال

اینم یه کتاب آموزش برای مطلب:

 

A Guide to Matlab

For Beginners and Experienced Users

0521803802.jpg

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.

محتوای مخفی

    برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید.

لینک ارسال

سلام دوستان

خوبین ؟

می‌دونم یه تاخیر خیلی طولانی پیش اومده، و این به دلیل امتحاناتم هستش که تا جمعه ادامه داره

بخش زیادی نمونده که اینجا بخوام بگم، چون مقدماتی هستش

ولی باید این مهم رو تموم کنم

 

با آرزوی موفقیت :wubpink:

لینک ارسال

گراف دو بعدی

این گراف به وسیله دستور plot رسم شده که به صورت‌های زیر قابل نمایش هستش، بعد از وارد کردن چند مثال، در مورد هر یک توضیحی خواهیم داد


[color=Blue]1.[/color] >> plot (y)
[color=Blue]2.[/color] >> plot (rand (1,20))
[color=Blue]3.[/color] >> plot (x,y)
[color=Blue]4.[/color] >> plot ( [0 4] , [1 3] )
[color=Blue]5.[/color] >> ezplot (' tan (x) ' )

  1. y یک بردار واحد می‌باشد که به وسیله دستور plot رسم خواهد شد
  2. در اینجا، ابتدا 20 عدد رندم بین صفر تا یک به وسیله دستور Rand انتخاب شده، و سپس بوسیله دستور plot رسم شده ( ممنون می‌شم که این دستور رو توی برنامه اجرا کنید ). همینطور، می‌تونید قبل از استفاده از دستور plot، عبارت y رو برابر با rand مورد نظر قرار داده و سپس مانند قسمت 1 عمل کنید
  3. متداول‌ترین روش استفاده از دستور plot می‌باشد، که اولی x و سپس دومی y رو اخیتار کرده و رسم می‌کند
  4. می‌تونید این قسمت رو گسترش بدین، [4 0] بخش x و [3 1] بخش y رو اختیار کرده است
  5. متلب براحتی می‌تونه گراف‌هایی رو رسم کنه، اون هم با استفاده از "ez"، که قبل از plot‌ بکار برده شده و به صورت ezplot به نمایش در اومده. اینجا نمودار tan رو رسم کرده، می‌تونید x رو نیز رسم کنید، یا گرافهای cos و sin یا هر چیزی که هست. فقط شیوه اون رو یادتون نره، بعد از پرانتز، حتمن عبارت مورد نظر رو توی ' قرار بدین. مثل مثال بالا

 

label - برچسب

می‌تونید روی گراف‌ها با استفاده از دستورات زیر، برچسب‌هایی بزنید، با تغییراتی رو در گراف به وجود بیارین، به شیوه‌ی بالا عمل می‌کنیم


1. >> gtext ( 'text' )
2. >> grid
3. >> text (x, y, 'text' )
4. >> title ( 'text' )
5. >> ylabel ( 'vertical' )
6. >> xlabel ( ' horizontal' )

  1. نوشتن یک text در گراف رسم شده، پس از بکار بردن دستور مورد نظر، برنامه منتظر می‌مونه که شما به وسیله موس، جای متن مورد نظر رو انتخاب کرده و سپس با کلیک، متن دلخواه در اون مکان قرار خواهد گرفت. با استفاده از tools --> edit plot قادر خواهید بود که جای متن مورد نظر رو عوض کرده و تغییراتی رو در اون بخش ایجاد کنید ( دقت کنید که آدرس داده شده در پنجره گراف هستش نه در پنجره متلب )
  2. گذاشتن / حذف شطرنجی کردن صفحه در یک گراف.
  3. تا الان ازش استفاده نکردم، نمی‌دونم چی به چیه ! :دی
  4. قرار دادن یک عنوان برای یک گراف
  5. برچسب زدن به قسمت عمودی نمودار
  6. برچسب زدن به قسمت افقی نمودار

 

multiple plots on the same axes

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

 

  1. استفاده از دستور hold و تا زمانی که این دستور وجود داره، تمامی دستورات داده شده جهت رسم، در یک نمودار قرار خواهند گرفت. برای استفاده از این دستور و روشن شدنش، کافیه که hold‌ رو بزنید و سپس enter‌ کنید. اگه اینکار رو دوباره انجام دهید، این دستور غیر فعال می‌شه
  2. استفاده از دستور plot همراه با متغیرهای زیاد. به شیوه‌ی زیر
     plot (x1, y1, x2,y2, x3, y3, .... ) 


  3. و روش سوم استفاده از
     plot (x,y)

    زمانی که x و y هر دو ماتریس هستند یا جایی که یکی از آنها ماتریس و دیگری بردار

line styles, markers and colors


>> plot ( x, y, '--' )
>> plot (x, y, 'o' )
>> plot (x, sin (x), x, cos (x), 'om -- ' )

محدوده رنگ‌های مشخص شده c , m, y, k , r , g, b, w می‌باشد. با تمرین می‌تونید شیوه صحیح استفاده از این مدل رو یاد بگیرید یا استفاده از help plot

 

axis limits

وقتی شما یک گراف رو رسم می‌کنید، برنامه متلب به طور اتوماتیک یک محدوده‌ی خاص رو در نظر می‌گیره که شما می‌تونید اون رو تغییر بدین یه دوباره به حالت اتوماتیک قرار داده

axis ( [xmin, xmax, ymin, ymax]  )

می‌تونید از inf- یا inf+ نیز استفاده کنید در محدوده‌ی بالا و اگه دوست دارین به حالت اتوماتیک قبل برگردین، از دستور axis auto استفاده کنید

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

 

multiple plots in a figure: subplot

 

subplot (m, n, p )

بدین معنی که پنجره مورد نظر، دارای m*n نمودار، و p نیز محل قرار گرفتن هر نمدار می‌باشد

در مثال زیر، از یک مثال گراف‌های سه بعدی استفاده شده که بعدن در مورد اونها توضیح خواهیم داد، شما اینجا تنها کاربرد subplot‌ رو مشاهده کنید و نکته‌ها رو ببینید

 


[x, y] = meshgrid ( -3:0.3:3 );
z= x .* exp (-x.^2 - y.^2 );
subplot (2,2,1)
mesh(z), tittle ('subplot (2,2,1)')
subplot (2,2,2)
mesh(z)
view(-37.5,70),tittle('subplot(2,2,2)')
subplot (2,2,3)
mesh(z)
view(-37.5,70),tittle('subplot(2,2,3)')
subplot (2,2,4)
mesh(z)
view(-37.5,70),tittle('subplot(2,2,4)')

the command subplot (1,1,1) goes back to a single set of axes in  the figure

figure, clf and cla

figure (h) 

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

clf پنجره گراف مورد مشاهده رو پاک می‌کنه ( گرافی که در حال اجراست ). همینطور تمامی مشخصات و برچسب‌ها رو

cla تمامی برچسب‌ها و پلاتها رو پاک می‌کنه

 

لینک ارسال
  • 3 months later...
  • 3 weeks later...
خب عوض کمک کردنته:banel_smiley_4:

حتما دترمینانشو میخواد یا چیزی تو این مایه ها

:icon_gol:

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

مستطیلی نه..

به هر حال من هم موافقم..

اصلا جای خنده نداره...

یعنی که چه!!!!

اگه بیشتر توضیح بده که خیلی بهتر میشه

لینک ارسال
  • 4 weeks later...

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

بزار اینجا ذبگم شاید کسی متوجه شه

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

لینک ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...