السلام علیک یا اباعبداللّه الحسین

سبد خرید (0)

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

در فصل 3، روش Import کردن داده ها در متلب را آموختید. در مطالب زیر، روش وارد کردن داده ها در متلب  را می آموزید. 

وارد کردن مقادیر در متلب، با استفاده از براکت ها

برای وارد کردن عدد یا متن در نرم افزار متلب، می توانید از براکت ها استفاده کنید. برای وارد کردن داده ها، ابتدا علامت براکت سمت چپ(])  و سپس داده ها را وارد کنید؛ حالا از براکت سمت راست([) استفاده کنید. به یاد داشته باشید که آیتم های قرار گرفته در داخل براکت ها، باید به وسیله ی کاما(,از یکدیگر جدا شوند. برای امتحان کردن این موضوع، نرم افزار متلب را باز کنید و عبارت [5,6]b  را در پنجره ی Command وارد کنید و کلید Enter را فشار دهید. 

 

حاصل به صورت زیر خواهد بود:

 

حالا در Workspace بر روی b دابل-کلیک کنید، همانند عکس زیر دو مقدار جداگانه را مشاهده خواهید کرد. همان طور که مشاهده می کنید، در پنجره ی Workspace، مقدار b بصورت یک لیست افقی 1x2  نشان داده شده است:

 

یاد آوری: برای ذخیره کردن فضای نمایش، می توانید عبارت format compact را تایپ کنید و سپس کلید Enter را فشار دهید. اگر می خواهید که اطلاعات را در پنجره ی Command پاک کنید، عبارت clc را تایپ کنید و کلید Enter را فشار دهید. برای یادگیری موارد بیشتر، می توانید به فصل 3مراجعه نمایید. 


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

کاما باعث می شود که مقادیر درون یک سطر از یکدیگر جدا شوند. اما سمی کالن(;) باعث می شود که سطرهای جدید ایجاد شوند. برای امتحان کردن این موضوع، عبارت [e=[5;6 را در پنجره ی Command تایپ کنید. نتیجه به صورت زیر خواهد بود:

توجه کنید که پنجره ی Workspace مقدار e را به عنوان یک لیست 2x1 و به صورت عمودی، نشان می دهد:


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

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

برای امتحان کردن این موضوع، عبارت [a=[1,2; 3,4 را در پنجره ی Command وارد کنید و سپس کلید Enter را فشار دهید.

نتیجه به صورت زیر خواهد بود:

یاد آوری: توجه کنید که خروجی چقدر شبیه به جبر خطی است. متلب تمام تلاش خود را انجام می دهد تا هنگام ارائه دادن اطلاعات، آنها برای شما آشنا به نظر برسند. بنابراین شما نیازی ندارید که وقت بگذارید تا داده ها را تفسیر کنید. اگر که خروجی آن طور که می خواهید به نظر نمی رسد، علامت این است که شما اطلاعات خود را به درستی وارد نکرده اید. 

پیدا کردن ابعاد ماتریس به وسیله ی ستون Size در متلب

عکس های 5.1 و 5.2 روش به دست آوردن اندازه ی یک ماتریس را نشان می دهند. کافیست در این تصاویر، به گوشه ی بالا و سمت چپ نگاه کنید. و یا می توانید در پنجره ی Workspace به ستون Size نگاه کنید. در صورتی که ستون Size نمایش داده نمی شود، بر روی پنجره ی Workspace راست-کلیک کنید و در منوی باز شده گزینه ی choose columns و سپس گزینه ی size را انتخاب کنید. در صورتی که می خواهید مقادیر ماکسیمم و مینیمم نشان داده شوند، بر روی پنجره ی Workspace راست-کلیک کنید و سپس گزینه ی choose columns و سپس گزینه های Max و Min را انتخاب کنید. این اطلاعات زمانی مفید واقع می شوند که داریم بر روی بردارها و ماتریس های بزرگ کار می کنیم و مقادیر ماکسیمم و مینیمم مشهود نیستند.

بر اساس صفحه ی نمایش کامپیوتر شما، ممکن است نیاز داشته باشید که کلیک کنید و ستون های Min و Max را به سمت چپ درگ کنید تا بتوانید آنها را مشاهده کنید. و یا می توانید پنجره ی مورد نظر را تغییر اندازه دهید. عکس 5.3 نتیجه ی عناصری را نمایش می دهد که آنها را در بخش های قبلی ایجاد کردیم:


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

اگر بخواهیم به صورت دستی، لیستی از اعداد را در متلب ایجاد کنیم، احتمال اشتباه کردن زیاد می شود و بسیار زمان بر خواهد بود. اما با استفاده از علامت دونقطه(:) به راحتی می توانیم یک محدوده از اعداد را در نرم افزار متلب ایجاد کنیم. برای استفاده از علامت دونقطه، عدد سمت چپ از این علامت، نقطه ی شروع را مشخص می کند و عدد سمت راست، نقطه ی پایان محدوده را تعیین می کند. 

برای امتحان کردن این موضوع، عبارت [g=[5:10 را در متلب تایپ کنید و کلید Enter را فشار دهید. نتیجه ی زیر حاصل خواهد شد:


ایجاد یک محدوده از اعداد با استفاده از تابع ()linspace در متلب

مشکلی که در هنگام استفاده از علامت دونقطه به وجود می آید، این است که متلب فرض می کند که قدر نسبت(گام) برابر با 1 است. اما ممکن است بخواهید که اعداد با یکدیگر فاصله ی بیشتری داشته باشند. بعنوان مثال ممکن است بخواهید بین اعداد 5 و 10، یازده مقدار را ایجاد کنید. تابع ()linspace این مشکل را حل کرده است.

برای کار با این تابع، ابتدا باید مقادیر شروع و پایان را مشخص کنید و سپس تعداد مقادیری که می خواهید بین این دو عدد ایجاد شوند را مشخص کنید. برای اینکه ببینید که تابع ()linspace چگونه کار می کند، عبارت (g=linspace(5,10,11 را تایپ کنید و کلید Enter را فشار دهید. نتیجه ی زیر حاصل خواهد شد:

 یاد آوری: در مورد بالا، مقدار قدر نسبت(گام) برابر است با 0.5 . همان طور که مشاهده می کنید، هر عدد از عدد قبلی به اندازه ی 0.5 واحد بیشتر است و 11 مقدار در خروجی وجود دارند. به طور خلاصه می توان گفت که استفاده از ()linspace نسبت به استفاده از علامت دونقطه، کارسازتر است اما به خاطر سپاری علامت دو نقطه آسان تر است. 


اضافه کردن یک قدر نسبت(گام) به روش دو نقطه در متلب

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

برای امتحان کردن این موضوع، عبارت [g=[5:0.5:10 را در متلب تایپ کنید و کلید Enter را فشار دهید. حاصل به صورت زیر خواهد بود:

 این دقیقا همان نتیجه ای است که از مثال ()linspace به دست آمد. اما شما در این روش، مستقیما باید قدرنسبت را مشخص کنید. و در تعیین تعداد مقادیر خروجی، هیچ نقشی ندارید. ولی هنگام استفاده از تابع  ()linspace می توانید تعداد مقادیر دریافتی در خروجی را تعیین کنید. هر روش مزیت های خاص خودش را دارد. بنابراین باید از روشی استفاده کنید که به آن نیاز دارید.


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

با استفاده از علامت دونقطه در نرم افزار متلب، تنها می توانیم بردارهای سطری ایجاد کنیم. اما گاهی اوقات نیاز داریم تا بردارهای ستونی را ایجاد کنیم. برای ایجاد یک بردار ستونی، می توانید از یک علامت کوتیشن(') استفاده کنید. برای مشاهده ی این موضوع، عبارت '[h=[5:0.5:10 را در متلب تایپ کنید و کلید Enter را فشار دهید.

نتیجه ی زیر حاصل خواهد شد:

 هنگامی که به پنجره ی Workspace نگاه کنید، خواهید دید که g یک بردار 1x11 است در حالی که h یک بردار 11x1 است. بنابراین مورد اول، یک بردار سطری است و مورد دوم یک بردار ستونی می باشد. 

شما می توانید به خوبی از ماتریس ها ترانهاده بگیرید. و سطر ها و ستون ها را تغییر موقعیت دهید. مثلا در مثال های قبلی، شما عبارت [a=[1,2;3,4 را تایپ کردید که مقدار زیر را تولید می کرد:

برای اینکه ترانهاده ی ماتریس بالا را مشاهده کنید، عبارت '[i=[1,2;3,4 را تایپ کنید و کلید Enter را فشار دهید. نتیجه ی زیر حاصل خواهد شد:

دیدگاه‌ها  

+1 # الهه وبی پور 1396-05-02 15:51
من کد زیر رو برای پیدا کردن سطر و ستون مقداری خاص در ماتریس میزنم درست هم جواب میده.data اسم ماتریسه
[row,column]=find[data==1]
منتها همین کد رو برای پیدا کردن مقادیر null میزنم خطا میده.کسی میتونه راهنمایی کنه
[row,column]=find[data==null]
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # احسان عباسی 1396-05-02 18:38
سلام. شما چطور یه ماتریس ایجاد کردید که توش مقادیر null وجود داشته باشه؟ لطفا در این مورد کمی بیشتر توضیح دهید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # الهه وبی پور 1396-05-02 23:36
فک کنم درست توضیح ندادم.ببینید من یه ماتریس دارم که سلول هایی از اون خالی هس هیچ مقداری ندارد.میخام این سلول ها با میانگین همان ستون جایگزین شود
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # احسان عباسی 1396-05-03 09:38
سلام برای انجام این کار یه تابع ایجاد کرده ام. که می تونید از آدرس زیر دانلودش کنید:
http://beyamooz.com/images/matlab/functions/averagem.m
روش کار به صورت زیر هست:
>> A = [0 1 1; 2 3 2; 1 0 2; 4 2 0]

A =

0 1 1
2 3 2
1 0 2
4 2 0


>> averagem(A)

ans =

1.7500 1.0000 1.0000
2.0000 3.0000 2.0000
1.0000 1.5000 2.0000
4.0000 2.0000 1.2500

>>

همان طور که مشاهده می کنید، مقادیر 0، با مقدار میانگین همان ستون، جایگزین شده است.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # سمانه ندری 1396-03-09 03:36
سلام وقت بخیر میخواستم بدونم چطورمیشه یه بردارتصادفی شامل هزارعدد ازیک تاشش بادستورrandnیجا د کرد،؟جداب بدید ممنون میشم
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # احسان عباسی 1396-03-09 20:34
سلام.
برای تولید اعداد صحیح تصادفی باید از تابع randi استفاده بشه. بنابراین یک تابع براتون ایجاد کردم که یک بازه رو بهش می دهیم و تعداد عناصری که می خواهیم بردار حاصل داشته باشد را نیز به آن می دهیم و یک بردار برای ما برمی گرداند که عناصر آن بین بازه هستند بطور شامل،این تابع از این قرار است:
function [ m ] = rnd( min,max,n )

m = [];
for i = 1:n
r = randi([min,max] );
m(i)=r;
end

end

در این تابع ابتدا مینیمم بازه و سپس ماکزیمم بازه و سپس طول بردار حاصل را باید مشخص کنیم، بعنوان مثال داریم:
t2 = rnd(1,4,10)

t2 =

3 3 4 2 3 3 1 1 2 4
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن