آموزش متلب کلید

تشخیص وجود یک عدد در یک ماتریس

تشخیص عناصری از یک ماتریس که در شرط خاصی صدق می کنند و موقعیت آن عناصر در ماتریس، با دستور find در متلب :

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

مثال :

فرض کنید که ماتریس با نام A داریم و می خواهیم عناصری از A که بزرگتر از عدد 3 هستند و همچنین موقعیت آن عناصر در ماتریس A زا بیابیم، برای این منظور، کدهای زیر را می نویسیم :

 

clear all
close all
clcA=[3 4 2; 5 2 7]
B=find(A > 3)

بردار B ، حاوی شماره عناصری از بردار A خواهد بود که بزرگتر از عدد 3 می باشند.

نتیجه :

 

A =3     4     2
5     2     7

B =

2
3
6

مثال :

این بار همان مثال قبل را به گونه ای می نویسیم که شماره ردیف و ستون عناصر بزرگتر از عدد 3 در ماتریس A ، در دو بردار row و column ذخیره شوند :

 

clear all
close all
clcA=[3 4 2; 5 2 7]
[row,column]=find(A > 3)

نتیجه :

 

A =3     4     2
5     2     7

row =

2
1
2

column =

1
2
3

تشخیص وجود یک عدد در یک ماتریس و موقعیت آن عدد در ماتریس، با دستور find در متلب :

اگرچه دستور find در متلب، می تواند کاربردهای مختلفی داشته باشد، اما یکی از کاربردهای آن، یافتن یک عدد در یک ماتریس می باشد و حتی موقعیت آن عدد در ماتریس را هم به ما می دهد. در ادامه با چند مثال، چگونگی استفاده از دستور find برای این منظور و همچنین روش های مختلف یافتن موقعیت عدد در ماتریس را شرح خواهیم داد.

مثال :

در ماتریس A ، چک می کنیم که آیا عدد 2 وجود دارد یا خیر. دستور find ، موقعیت عدد 2 در ماتریس را به صورت ((چندمین عنصر ماتریس)) بر می گرداند :

clear all
close all
clcA=[1 2 3; 5 6 7]
B=find(A==2)

نتیجه :

A =1     2     3
5     6     7

B =

3

چون سومین عنصر ماتریس A برابر 2 بوده است، بنابراین دستور find ، عدد 3 را بر می گرداند.

مثال :

این بار همان مثال قبلی را به گونه ای می نویسیم که دستور find ، شماره ردیف و ستون عناصری از ماتریس A که برابر 2 می باشند را به ما بدهد. شماره ردیف این عناصر، در بردار row و شماره ستون آنها، در بردار column ذخیره خواهد شد :

clear all
close all
clcA=[1 2 3; 5 6 7]
[row,column]=find(A==2)

نتیجه :

A =1     2     3
5     6     7

row =

1

column =

2

مثال :

clear all
close all
clcA=[3 4 2; 5 2 7]
[row,column]=find(A==2)

نتیجه :

A =3     4     2
5     2     7

row =

2
1

column =

2
3

محاسبه ترانهاده یک ماتریس در متلب :

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

مثال :

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

نتیجه :

A =1     2     3
4     5     6
7     8     9

B =

1     4     7
2     5     8
3     6     9

محاسبه دترمینان یک ماتریس با دستور det در متلب :

با استفاده از دستور det در متلب، می توانیم دترمینان یک ماتریس را محاسبه کنیم. به مثال زیر توجه کنید :

مثال :

A=[1 2 3;4 5 6;7 8 9]
B=det(A)

نتیجه :

A =1     2     3
4     5     6
7     8     9

B =

6.6613e-016

چک کردن وجود یک عدد در یک ماتریس، با دستور ismember در متلب :

در مبحثی دیگر شرح دادیم که با دستور ismember در متلب، می توانیم چک کنیم که آیا عناصر یک ماتریس، در یک ماتریس دیگر وجود دارد یا خیر. علاوه بر این، با دستور ismember می توانیم چک کنیم که آیا یک عنصر در یک بردار یا ماتریس وجود دارد یا خیر. دستور ismember را باید به شکل کلی زیر به کار ببریم :

ismember(B,A)

با دستور فوق، دستور ismember ، ماتریسی را با اندازه ماتریس B برمی گرداند که تنها حاوی مقادیر 1 و 0 می باشد. هر عنصری از ماتریس B که در ماتریس A عضو بوده است، در محل آن عنصر، مقدار 1 نمایش داده شده است و چنانچه آن عنصر عضو ماتریس A نباشد، در محل آن عنصر، مقدار 0 نمایش داده شده است.

حال اگر بخواهیم چک کنیم که آیا یک عدد، عضو یک ماتریس است یا نه، تنها کافی است که آن عدد را به جای مقدار B در دستور بالا بنویسیم (ماتریس مورد نظر نیز به عنوان A تعریف می شود).

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

مثال :

clear all
close all
clcA=[1 2 3];
B=1;
C=ismember(B,A)

D=[2 3 4];
E=ismember(B,D)

سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب می باشد.

نتیجه :

C =1

E =

0

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

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

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