خودآموز پردیس نیکان

ماتریس های خاص در نرم افزار متلب

ماتریس های خاص در نرم افزار متلب

در نرم افزار متلب همه پارامترها و اعداد به صورت ماتریس شناخته می شوند اگر یک عدد معمولی باشد به عنوان یک ماتریس ۱*۱  شناخته خواهد شد و همه اعمال ریاضی بر اساس قوانین جبر ماتریسی است.

در نرم افزار متلب مانند ریاضیات، ماتریس را با کروشه یا براکت ([ ]) نشان می دهند.

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

در یک ماتریس ستون ها را با (ویرگول) یا (فاصله) جدا می کنیم و سطرها را با سمیکولون (;) یا زدن enter و رفتن به سطر بعد می توانیم جدا کنیم. به عنوان مثال ماتریس های زیر با هم برابر اند:

 

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

>>B=[1,2,3;4,5,6;7,8,9]

>>C=[1,2,3
4,5,6
7,8,9]

نکته
همیشه به خاطر داشته باشید که متلب به حروف بزرگ و کوچک بکار رفته در پارامتر ها حساس است بدین صورت که حروف بزرگ و کوچک یکسان شناخته نمی شوند.

برای مثال دو نام a و A با هم برابر نیستند و اگر در جایی حرف کوچک و در جایی حرف بزرگ به کار ببریم کامپیوتر حتما خطا خواهد گرفت.

ماتریس ها خاص

ماتریس جادویی Magic

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

>>magic(4)
دکمه اینتر را فشار دهید
ans=
13     3       2       16
8      10     11       5
12     6       7        9
1      15     14       4

ماتریس تصادفی Rand

یک ماتریس با درایه های تصادفی بین صفر و یک، با توزیع نرمال با درجه وارد شده می سازد. Rand(n,m) این دستور، ماتریس n*m را می سازد که درایه های آن اعداد تصادفی بین صفر و یک است. Rand(n) این دستور ماتریس مربع n می سازد که درایه های آن اعداد تصادفی بین صفر و یک است.

ماتریس همانی Eye

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

  • eye(n)
  • n درجه ماتریسی است که می خواهیم بسازیم.

>>eye(3)
دکمه اینتر را فشار دهید

ans=
1      0      0
0      1      0
0      0      1

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

>>eye(3,4)
دکمه اینتر را فشار دهید

ans=
1      0      0      0
0      1      0      0
0      0      1      0

ماتریس یک Ones

در صورتی که پارامتر تعریف شده یک عدد باشد. ماتریس مربع با درجه همان عدد ساخته خواهد شد.

ولی در صورتی که دو عدد وارد شود ماتریس بر اساس درجه وارد شده تشکیل می شود.

>>ones(3)
دکمه اینتر را فشار دهید
ans=
1      1      1
1      1      1
1      1      1

>>ones(3,2)
دکمه اینتر را فشار دهید
ans=
1      1
1      1
1      1

ماتریس صفر Zeros

ماتریس با درایه های صفر می سازد.

عملکرد این دستور دقیقا مانند ماتریس ones می باشد.

>>zeros(2)
دکمه اینتر را فشار دهید

ans=
0      0
0      0

اگر علاقه مند به این مطلب آموزشی بودید مارا در خودآموز پردیس نیکان دنبال کنید.

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

  • نویسنده : مدیر سیستم
    • امتیاز :
    • 6
    • 0
  • تاریخ انتشار : 1397/01/16
  • تعداد مشاهده : 3626 بار
نظرات کاربران
محمد رجبی

محمد رجبی

                سلام چجوری می تونم یک ماتریس با n سطر و 2m ستون ایجاد کنم به طوری که ستون های فرد این ماتریس (cos(omega*t و ستون های زوج این ماتریس (sin(omega*t باشد اندیس t از یک تا n و اندیس omega از یک تا m است. اندیس omega در دو ستون اول یک است و در دو ستون دوم دو است الی آخر یعنی هر دو ستون یکبار تغییر می کند. با تشکر.
            
پاسخ دادن 0 0

ماهك

ماهك

                با سلام ، چطور مي توانم در متلب n تا ماتريس با n تا درايه ،  كه هر  ماتريس درايه متفاوت با ماتريس ديگر دارد ايجاد كنم؟ ممنون
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                با سلام 
منظورتون و از n  تا درایه متوجه نشدم اگر منظورتون n تا ماتریس با ابعاد مختلف است. برای این کار باید به کمک یک حلقه for هر تعداد ماتریس که می خواهید درست کنید و چون ابعاد اونها ممکنه متفاوت باشه می تونید اون ها رو داخل آرایه های سلولی ذخیره کنید. داخل حلقه خودتون می تونید به کمک دستور randi عدد تصادفی درست کنید که نشاندهنده تعداد آرایه های هر ماتریس باشه و در هر بار تکرار حلقه عدد متفاوتی به شما بدهد.
            
پاسخ دادن 1 0

ماهك

ماهك

                 ممنون از پاسخگويي شما ،منظورم اينه كه n تا ماتريس n*n كه درايه هاي هر ماتريس متفاوت از ماتريس ديگر هست ايجاد بشه
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                به کمک دستور تولید اعداد تصادفی باید اعداد تصادفی تولید کنید برای درایه های ماتریس هاتون
مثلا برای تولید اعداد تصادفی صحیح می تونید از دستور randi استفاده کنید.
در محیط command window تایپ کنید doc randi و بعد اینتر و بزنید تا راهنمای استفاده از دستور randi ظاهر شود.
یا اگر می خواهید اعداد حقیقی داشته باشید از دستور unifrnd استفاده کنید.
            
پاسخ دادن 0 0

ماهك

ماهك

                من تو كدنويسي ضعيف هستم دوباره توضيح ميدم . درايه هاي هر ماتريس مقدارهاي خاصي هستن ( يعني به صورت رابطه  هستن كه هر زمان به آن مقدار بدم جواب مشخصي به من ميده) نمي تونم تصادفي انتخاب كنم و اينكه درايه ي هر ماتريس با بقيه فرق مي كنه. نمي دونم تونستم منظورم برسونم يا نه
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                پیشنهاد می کنم با آموزشگاه تماس بگیرید تا براتون یک جلسه حضوری هماهنگ کنند.
02188434845
09339041141
            
پاسخ دادن 0 0

ماهك

ماهك

                بله ، ممنون از راهنمايي شما
            
پاسخ دادن 0 0

pardis

pardis

                سلام خسته نباشيد،يك بردار ساختم كه اعداد اعشاري بين ١تا٤رو ميگيره مثلا به شكل زير:
[١/٤٢،٣/٧٨،٢،١١،١/٩٨،٢/٦٢] ولي ميخوام كدشو جوري بنويسم كه قسمت صحيحشو محدود كنم،مثلا براي درايه دوم (٣/٧٨)ميخوام قسمت صحيحش (٣) فقط ١يا ٢باشه،عدد١و٢هر كدوم رو كه شد به دلخواه بگيره ولي ٣نباشه،چطوري ميتونم كدشو بنويسم؟اگه امكانش هست راهنمايي كنيد،تشكر.
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                سلام بستگی داره که بخواهید چقدر کدتون پویا باشه. اگر بخواهید دستی این کار و انجام بدید که ساده است باید با دستور fix و تفاضل آن با داده اولیه، مقدار اعشاری را کنار بگذارید و بعد با دستور randi یک عدد تصادفی صحیح بین یک و دو تولید کنید و با مقدار اعشاری از مرحله قبل جمع کنید.
            
پاسخ دادن 0 0

سسس

سسس

                سلام خسته نباشید
چطوری یه ماتریس تعریف کنم که درایه هاش یک در میان صفر و یک باشن ( تعریف صفحه شطرنج با ماتریس صفر)
            
پاسخ دادن 1 0

دکتر حسین سامعی

دکتر حسین سامعی

                سلام وقت بخیر
با توجه به اینکه تعداد خانه های یک صفحه شطرنج 8*8 می باشد. اگر می خواهید خودتون دستی وارد کنید اعداد را یکی یکی داخل یک براکت بذارید و بین سطر ها هم نقطه ویرگول (;) بگذارید.

اگر می خواهید بصورت اتومات همچین ماتریسی وارد شود ابتدا یک ماتریس صفر با ابعاد 8*8 به کمک دستور Zeros تولید کنید سپس به کمک دستور for درایه های مورد نظر را انتخاب نمایید و مقدار یک درآن بگذارید.
            
پاسخ دادن 0 0

Fatima

Fatima

                Ftm:
یه سوال در ارتباط با متلب داشتم اگ بتونید کمکم کنید حل کنم ممنون میشم

*میخواهیم ماتریس ۳×۳ را حل کنیم به طوری که مقادیر حاصل جمع سطرها و ستون ها به شکل زیر باشد حاصل سطر اول ۶، حاصل سطر دوم۱۵،حاصل سوم ۱۵،ستون اول ۱۲،ستون دوم ۱۵،ستون سوم ۹ و قطر اصلی۶ و قطر فرعی ۱۵ باشد !؟؟؟

من اصلا به متلب وارد نیستم
            
پاسخ دادن 0 0

Fatima

Fatima

                
یه سوال در ارتباط با متلب داشتم اگ بتونید کمکم کنید حل کنم ممنون میشم

*میخواهیم ماتریس ۳×۳ را حل کنیم به طوری که مقادیر حاصل جمع سطرها و ستون ها به شکل زیر باشد حاصل سطر اول ۶، حاصل سطر دوم۱۵،حاصل سوم ۱۵،ستون اول ۱۲،ستون دوم ۱۵،ستون سوم ۹ و قطر اصلی۶ و قطر فرعی ۱۵ باشد !؟؟؟

من اصلا به متلب وارد نیستم
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                نرم افزار متلب یک زبان برنامه نویسی است باید قانون های مسألتون و مشخص کنید وبعد داخل متلب کد نویسی کنید باید از روش یک مدل ریاضی بسازیم و به کمک یک روش ریاضی اونو حل کنیم.
            
پاسخ دادن 0 0

pardis

pardis

                باسلام،چطور ميشه در متلب از بين چند عدد يكي را به تصادف انتخاب كرد؟مثلا از بين اعداد[3,45,80,11,67]يكي رو به تصادف انتخاب كنيم؟
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                با سلام. برای این کار گام های زیر را به ترتیب انجام دهید. گام یک) ورود داده های خود در یک متغییر A=[3,45,80,11,67] گام دوم) برای تعیین اتومات تعداد درایه های ماتریس فوق از دستور زیر استفاده کنید که اگر ماتریس عوش شد خودش تعداد درایه ها را بصورت اتومات محاسبه کند m=length(A) گام سوم) به کمک دستور زیر یک عدد تصادفی صحیح بین یک و تعداد درایه های ماتریس تولید کنید k=randi([1,m],1,1) گام چهارم) تعیین عدد تصادفی از ماتریس وارد شده F=A(k)
            
پاسخ دادن 0 0

nar

nar

                سلام من میخام در یک ماتریس صفر مربعی 250*250، 12 درایه آن به صورت راندم اعداد 1 تا 12 رو بگیره ولی با این شرط که تعداد درایع های غیر صفر هر ربع از ماتریس اصلی حداکثر 4 باشد.. حالا چطوری میتونم کد این رو بنویسم .
            
پاسخ دادن 0 0

دکتر حسین سامعی

دکتر حسین سامعی

                سلام. ماتریس مورد نظرتون و به 4 تا ماتریس 125 در 125 تعریف کنید که در ابتدا بصورت zeros باشند. با دستور zeros(125,125) سپس اعداد یک تا 12 را نیز به کمک دستور randi تولید کنید. ( دستور randi تولید اعداد تصادفی صحیح انجام میدهد). همچنین باید 4 بار عدد تصادفی صحیح هم بین 1 تا 4 تولید کنید که نشاندهنده تعداد درایه های غیر صفر در هر ربع را نشان دهد. سپس در درایه های تصادفی در ربع های مختلف قرار دهید و در نهایت 4 ماتریس تولیدی را کنار هم تجمیع کنید. ( به عنوان مثال اگر 4 ماتریس با نام های A1 تا A4 باشند می شود Z=[A1 A2;A3 A4]

به کمک دستور doc randi در محیط command W. می تونید از help نرم افزار استفاده کنید.

            
پاسخ دادن 0 0

pardis

pardis

                سلام،يك بردار دارم كه نشان دهنده سطرها و يك بردار دارم نشان دهنده اعدادي كه بايد در اين سطرها قرار گيرند،يعني مثلا اگه درايه اول بردار اول ١ و درايه اول بردار دوم٥باشه،يعني عدد٥ بايد تو سطر ١قرار گيرد،من ميخوام اعداد مربوط به هر سطر رو از ابتداي سطر به ترتيب بچينم و يك ماتريس دوبعدي تشكيل بدم،واگر سطر اول درايه اول و دومش عدد هست بقيشو كه صفر بزاره.a=[1 1 2 3 2] b=[5 3 4 1 2] الان ميخوام ماتريس زير رو كدشو بنويسم ولي بلد نيستم اگه ميشه كمكم كنيد ممنونم. [5 3 0 0 0;4 2 0 0 0;1 0 0 0 0]     ماتريسم اعدادش از چپ به راست به ترتيب سطر بيان شده در aو عدد مورد نظر در b چيده بشن.يك ماتريس دو بعدي٣*٥ 
            
پاسخ دادن 0 0

پردیس نیکان

پردیس نیکان

                سلام درود. مسالتون و مسأله خیلی ساده ایست با ترکیب دستورات for و find و نهایتا if قابل انجام است. آیا ماتریس a فقط اعداد بین 1 و 3 می گیرند ؟

            
پاسخ دادن 1 0

pardis

pardis

                بله فقط اعداد ١تا ٣رو ميگيره.چطوري ميتونم اعدادمو از ابتداي هر سطر بچينم؟ يعني از j=1 (ستون اول)تا الي اخر براي سطر اول و براي بقيه سطر ها هم همينطور.
            
پاسخ دادن 0 0

پردیس نیکان

پردیس نیکان

                در محیط mfile این کد را بنویسید:

clc;
clear;
close all;

a=[1 1 2 3 2];
b=[5 3 4 1 2];
c=zeros(3,5);

for i=1:3
  d=find(a==i); 
  c(i,1:size(d,2))=b(d);
    
end

خروجی یک ماتریس سه در پنج بصورت زیر خواهد بود
[5 3 0 0 0
4 2 0 0 0
1 0 0 0 0]


            
پاسخ دادن 0 0

pardis

pardis

                خيلي ممنونم بابت راهنمايي خوبتون.سپاس🙏
            
پاسخ دادن 0 0

پردیس نیکان

پردیس نیکان

                درود بر شما
            
پاسخ دادن 0 0

پيمان

پيمان

                با سلام ماتريسي ميخوام بنويسم كه سطر اولش اعداد تصادفي باشن كه مجموع ان ها برابر يك باشه چكار بايد بكنم؟ممنون ميشم راهنمايي كنيد
            
پاسخ دادن 0 0

مدير سيستم

مدير سيستم

                سلام، به عنوان مثال اگر ماتریس مورد نظرتون ماتریس A با 5 سطر و 4 ستون باشد که نیازمند آن باشید تا سطر اول این ماتریس را با اعداد بین صفر و یک پر کنید به نحوی که مجموع سطر اول آن یک شود می توانید ابتدا این سطر را جداگانه توسط دستورات زیر بسازید. در ابتدا به کمک دستور B=rand(1.4) اعداد تصادفی بین صفر و یک به اندازه تعداد ستون های ماتریس A درست می کنیم. سپس برای اینکه مجموع این اعداد برابر یک شود می توانیم هر یک از این اعداد را بر مجموع آن ها تقسیم کنیم تا مطمئن شویم که جمع آن ها برابر یک می شود. B=B/sum(B) نهایتأ ماتریس B را در سطر اول ماتریس A قرار می دهیم. A(1,:)=B
            
پاسخ دادن 0 0

پردیس نيكان

پردیس نيكان

                سلام، به عنوان مثال اگر ماتریس مورد نظرتون ماتریس A با 5 سطر و 4 ستون باشد که نیازمند آن باشید تا سطر اول این ماتریس را با اعداد بین صفر و یک پر کنید به نحوی که مجموع سطر اول آن یک شود می توانید ابتدا این سطر را جداگانه توسط دستورات زیر بسازید. در ابتدا به کمک دستور B=rand(1.4) اعداد تصادفی بین صفر و یک به اندازه تعداد ستون های ماتریس A درست می کنیم. سپس برای اینکه مجموع این اعداد برابر یک شود می توانیم هر یک از این اعداد را بر مجموع آن ها تقسیم کنیم تا مطمئن شویم که جمع آن ها برابر یک می شود. B=B/sum(B) نهایتأ ماتریس B را در سطر اول ماتریس A قرار می دهیم. A(1,:)=B

(با تشكر از آقاي دكتر سامعي مدرس دوره متلب، بابت پاسخ به اين سوال)
 
            
پاسخ دادن 0 0

alireza

alireza

                من دانشجوی ترم آخر کارشناسی، رشته مهندسی شیمی هستم به نظرتون نرم افزار متلب و باید یاد بگیرم؟ 
            
پاسخ دادن 0 0

پردیس نیکان

پردیس نیکان

                با عرض سلام و احترام. نرم افزار متلب یک زبان برنامه نویسی است و تمام افرادی که در یکی از رشته های مهندسی مشغول به تحصیل هستند می بایست نهایتأ یک زبان برنامه نویسی یاد بگیرند. (البته اگر می خواهند ادامه تحصیل بدهند و به مدارج بالاتر تحصیلی دست یابند).
            
پاسخ دادن 0 0

حسین پاکزاد

حسین پاکزاد

                با سلام و احترام. آیا امکان تولید ماتریس های چند بعدی در نرم افزار متلب وجود دارد؟؟ لطفا نحوه تولید ماتریس های مثلا 3 بعدی را نیز آموزش دهید. ممنون
            
پاسخ دادن 0 0

پردیس نیکان

پردیس نیکان

                با عرض سلام و ادب. بله امکان وارد کردن و تولید ماتریس های چند بعدی در نرم افزار متلب وجود دارد. به این شکل که شما می توانید با وارد کردن مثلا دستور (Ones(3,2,4, یک ماتریس سه بعدی که تعداد 3 سطر و 2 ستون یک می باشد و در بعد سوم در 4 رده همان ماتریس 3 در 2 با درایه های یک تکرار شده است. با تعمیم همین موضوع به ماتریس های دیگر و اضافه کردن اعداد بیشتر می توان ماتریس های چند بعدی ساخت.
            
پاسخ دادن 0 0

زهره

زهره

                با سلام ممنون بابت مطالب خوبتون. چطور می تونم یک ماتریسی داشته باشم که از حاصل ضرب درایه به درایه عناصر دو ماتریس دیگه بدست اومده باشد. از ضرب که استفاده می کنم ارور میدهد.
            
پاسخ دادن 0 0

پردیس نیکان

پردیس نیکان

                سلام و درود. اگر می خواهید دو ماتریس را بصورت درایه به درایه در هم تقسیم، ضرب یا به توان برسونید می تونید از عمگر های به ترتیب نقطه تقسیم، نقطه ضرب و نقطه توان استفاده کنید ( /. ، *. و ^. ). در غیر اینصورت این عملیات بصورت ماتریسی انجام می شود که در صورت رعایت نکردن بُعد ماتریس ها نرم افزار به شما خطا می دهد.
            
پاسخ دادن 0 0

نظر شما

ایمیل شما نشر نخواهد شد.فیلد های ضروری با * نشانه گذاری شده است.

تصویر امنیتی

پیام شما بعد از بررسی نمایش داده خواهد شد

نظر خود را بنویسید

توسعه و طراحی بوسیله پافکو PAFCO