مقالات پردیس نیکان

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

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

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

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

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

در یک ماتریس ستون ها را با (ویرگول) یا (فاصله) جدا می کنیم و سطرها را با سمیکولون (;) یا زدن 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

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

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

نظرات کاربران
ززهرا

ززهرا

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

لیلا

لیلا

                سلام وقتتون بخیر 
ببخشید اگه یک ماتریس مربعی داشته باشیم مثلا ماتریس ۶۴۸ در ۶۴۸ بعد همه ی درایه های آن صفر باشه به جز چند درایه که غیر صفر هستند باید چکار کنیم و به چه صورت کدنویسی را انجام دهیم؟
            
پاسخ دادن 2 0

هدی صفدری

هدی صفدری

                سلام وقتتون بخیر
استادم ی سوال داده که باید ماتریس جادویی 5در 5 بسازیم و حاصل نمایی عناصر و در expoسیو کنیم
حاصل نمایی چیه؟؟ 
            
پاسخ دادن 0 1

Rana

Rana

                سلام میشه راهنمایی کنین یه سوالی داشتم در مورد متلب.
چطور بدون اینکه درایه های ماتریسی رو تایپ کنیم به صورت خوردکار با چه کدی میتونیم ماتریسی داشته باشیم که همه ی درایه هاش باهم برابر باشه؟
            
پاسخ دادن 0 1

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

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

                با سلام و وقت بخیر
برای اینکه همچین ماتریسی بسازید راه های زیادی وجود دارد یکی از راحت ترین راه ها این است که به کمک تابع ones که در این مقاله توضیح داده شده است ماتریسی با درایه های یک با هر ابعادی که خودتان می خواهید بسازید و سپس ماتریس و در عدد دلخواه ضرب کنید.
B=5*ones(4,4)
مثلا در مثالی که خدمتتون گفتم ماتریس خروجی یک ماتریس چهار سطر در چهار ستون با درایه های یکسان پنج می باشد
            
پاسخ دادن 1 1

ساحل

ساحل

                سلام خسته نباشید
ببخشید من یه سوال دارم که راجب نرم افزار نیست بلکه راجب ماتریسه خواهش میکنم کمک کنید.🙏
چرا توی ماتریس درایه ۱۲ برابر درایه ۲۱ هستش؟؟؟
مثلا چرا ما توی خیلی از اثباتا n12=n21 در نظر میگیریم؟
لطفا پاسخ بدید.
            
پاسخ دادن 1 0

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

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

                سلام و وقت بخیر
باید مفروضات مسأله را نگاه کنید اگر در صورت مسأله گفته شده است که ماتریس متقارن است بدین معناست که اعداد بالای قطر اصلی با اعداد متناظردر پایین قطر اصلی با هم برابر هستند یعنی مثلا اگر سطرها نشاندهنده مبدا و ستون ها نشاندهنده مقصد باشند و اعداد داخل ماتریس بیانگر فاصله بین این شهر ها باشد. با فرض متقارن بودن ماتریس فاصله، فاصله بین شهر 1 به شهر 2 برابر است با فاصله بین شهر 2 تا 1
ولی اگر ماتریس نا متقارن باشد لزوما اعداد بالا و پایین قطر اصلی با یکدیگر برابر نیستند.

با آرزوی موفقیت برای شما
            
پاسخ دادن 1 0

S.Hm

S.Hm

                سلام وقتتون بخیر 
یه سوالی داشتم
۴نمره ۶ دانشجو و ۶ دانشگاه رو بخوایم معدلشونو حساب کنیم با دستور zeros چطوری میشه؟؟
            
پاسخ دادن 0 0

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

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

                سلام و وقت بخیر
دستوری که برای محاسبه میانگین هست تابع mean می باشد و تابع zeros صرفا تابعی است برای ساخت ماتریس با درایه های صفر
داده هاتونو داخل یک ماتریس مثلا A تعریف کنید بعد با نوشتن mean(A) میانگین و حساب کنید.

موفق باشید
            
پاسخ دادن 1 0

وحید

وحید

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

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

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

                سلام و وقت بخیر
قاعدتا نباید مشکلی داشته باشه، دقت داشته باشید برای محاسبه دترمینان باید حتما ماتریستون مربعی باشد.
می تونید به کمک دستور unifrnd اعداد تصادفی اعشاری تولید کنید و بعد به کمک تابع det دترمینان اونو حساب کنید می بینید که به درستی تابع det برای اعداد اعشاری هم کار می کند و مقدار دترمینان را محاسبه می کند.
            
پاسخ دادن 1 0

افسانه

افسانه

                با سلام . میخوام یک ماتریس 5 در 5 رو که به صورت پارامتر هستن  توی متلب تعریف کنم. بدون نوشتن ;(A_dk = zeros(4,4 ارور میده .دلیلش چیه ؟ من اون درایه هایی هم که صفر هستن رو اوردم. اگه درایه صفری هم نداشته باشه باید دستورzeros رو بنویسیم؟ 

                                                                                                                                                                                                             A_dk = zeros(4,4);
;((A_dk(1,1) = 1-Ts*(Rs/(sigma*Ls)+(1-sigma)/(sigma*tau_r
;A_dk(1,2) = Ts*ws
;(A_dk(1,3) = Ts*M/(sigma*Ls*Lr*tau_r
;(A_dk(1,4) = Ts*M*(ws - wr)/(sigma*Ls*Lr
;A_dk(2,1) = Ts*ws
;((A_dk(2,2) = 1-Ts*(Rs/(sigma*Ls)+(1-sigma)/(sigma*tau_r
;(A_dk(2,3) = -Ts*M*(ws-wr)/(sigma*Ls*Lr
;(A_dk(2,4) = Ts*M/(sigma*Ls*Lr*tau_r
;A_dk(3,1) = Ts*M/tau_r
;A_dk(3,2) = 0
;A_dk(3,3) = 1-Ts/tau_r
;A_dk(3,4) = Ts*wr
;A_dk(4,1) = 0
;A_dk(4,2) = Ts*M/tau_r
;A_dk(4,3) = -Ts*wr
;A_dk(4,4) = 1-Ts/tau_r

            
پاسخ دادن 0 0

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

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

                سلام و وقت بخیر
ببینید دستور Zeros برای این است که ما به نرم افزار متلب بگیم مقدار پارامتر یک ماتریس مثلا 5 در 5 است اگر با zeros تعریف نکنیم برای کدهای بزرگ به در دسر می افتیم یکی از این دردسر ها این است که باعث می شود سرعت اجراتون خیلی خیلی زیاد شود چون متلب تصوری از ابعاد اون ماتریس ندارد و بنابراین فضای زیادی برای اون تخصیص می دهد. در کل پیشنهاد میشه برای پارامترهایی که قرار است در ادامه راه پر شوند در ابتدا ابعادشون با ماتریس zeros تعیین گردند.
            
پاسخ دادن 1 0

لیلیوم

لیلیوم

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

x=[0:20:5000];
>> y=x;
>> [x,y]=meshgrid(x,y);
>> t=0.67.*sin(0.019.*x-32.59).*exp(-y./90.2);
>> d=1.62.*cos(0.019.*x-32.59).*exp(-y./90.2);
>> f=t+d;
>> mesh(x,y,f);
برنامه بالا را نوشتم برای تابع f فقط یک مشکلی وجود داره اینکه f یک تابع برداری است و باید tدر راستای x باشه و d در راستای y این را باید چجوری به برنامه اعمال کنم? 
            
پاسخ دادن 1 0

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

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

                سلام و وقت بخیر
به درستی چون دو متغیر مستقل دارید از مش کرید استفاده کردید ولی چون تابع f بصورت برداری است باید از plot3 برای رسم استفاده شود
            
پاسخ دادن 0 0

آذین

آذین

                باسلام
ببخشید من میخوام یک بردار با مثلا ۱۲ درایه تولید کنم که از اعداد ۱ تا ۳ تشکیل شده باشه و هرعدد ۴ بار تکرار بشه.نمیخوام اینو دستی وارد‌ کنم و میخوام داخل الگوریتم ژنتیک از این استفاده کنم که هر بردار با این خصوصیت که گفتم، یک کروموزوم باشه. چطور میتونم این کار رو بکنم؟
            
پاسخ دادن 6 2

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

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

                سلام و وقت بخیر
باید با دستورrandperm دوازده عدد جایگشتی ایجاد کنید و با حلقه for بگید که مثلا چهار عدد اول randperm را به عنوان جایگاه های کروموزوم عدد یک بگذار و چهار عدد دوم randperm را به عنوان جایگاه های کروموزوم عدد دو قرار بده و چهار عدد سوم را به عنوان جایگاه های کروموزوم عدد 3 قرار بده.

با آرزوی موفقیت برای شما
            
پاسخ دادن 0 0

نسرین

نسرین

                
سلام وقتتون به خیر
چطور میشه  در متلب یه ماتریس تصادفی تولید کرد ( یعنی به صورت رندوم درایه های ماتریس پر بشن)
که  خصوصیات زیر رو داشته باشه.
ماتریس مربعی n*n متقارن که درایه های قطر اصلی صفر باشه و بقیه ی درایه ها یا صفرند یا یک البته با این شرط که در هر سطر و ستون فقط یه یک داشته باشه.
ممنون میشم راهنماییم کنید.
بیان ریاضیاتی ماتریس به صورت زیر است(بتا ماتریس مورد نظره).
𝛽𝑖,𝑗∈{0,1} , 1≤𝑖,𝑗≤𝑛
𝛽𝑖,𝑗=𝛽𝑗,𝑖 , 1≤𝑖,𝑗≤𝑛
𝛽𝑖,𝑖=0 , 1≤𝑖≤𝑛
Σ𝛽𝑖,𝑗=1 , 1≤𝑖≤𝑛 
Σ𝛽𝑖,𝑗=1 , 1≤𝑗≤𝑛

            
پاسخ دادن 6 3

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

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

                سلام و وقت بخیر
مسٔله شما یک حالت خاص از مسٔله تخصیص است که یکی از راه های ساده می تواند بصورت زیر باشد:
مثلا اگر n برابر ۴ باشد می توانید یک ماتریس با تابع randperm(4) تولید کنید که خروجی می تواند بصورت جایگشتی از اعداد یک تا ۴ باشد مثلا می تواند بصورت زیر شود:
[3,1,4,2]
این ماتریس به این معناست که سطر اول درایه سوم برابر یک باشد و سطر دوم درایه اول یک باشد و سطر سوم درایه چهارم آن یک باشد و سطر چهارم درایه دوم آن یک باشد که مسٔله حل شده است یعنی حتما تضمین می کند که در هر سطر حتما یک عدد یک داریم و در هر ستون حتما یک عدد یک داریم. 
ولی محدودیتی که دارید این موضوع است که قطر اصلی باید حتما صفر باشد.
برای حل این موضوع هم می توانید یک حلقه while
در نظر بگیرید و بگید مادامی که شماره درایه و مقدار درایه با هم برابر بود این کار را تکرار کند یعنی 
clc;
clear;
close all;
n=5;
A=randperm(5);
B=1:1:n;
S=sum(A==B);
while S>0 
A=randperm(5);
B=1:1:n;
S=sum(A==B);  
end
AA=zeros(n,n);
for i=1:n   
 AA(i,A(i))=1;
end
disp(AA)
    

            
پاسخ دادن 1 0

محمد رجبی

محمد رجبی

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

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

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

                سلام و وقت بخیر
برای مسٔله ذکر شده می تونید از کد زیر استفاده کنید. کد Copy و Paste شود در محیط Script

clc;
clear;
close all;

n=5;
m=10;
z=zeros(n,2*m);

for i=1:n
   for j=2:2:2*m 
    z(i,j)=sin(j/2*i);
    z(i,j-1)=cos(j/2*i); 
   end
end
            
پاسخ دادن 0 0

ماهك

ماهك

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

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

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

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

ماهك

ماهك

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

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

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

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

ماهك

ماهك

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

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

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

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

ماهك

ماهك

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

pardis

pardis

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

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

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

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

سسس

سسس

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

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

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

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

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

Fatima

Fatima

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

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

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

Fatima

Fatima

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

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

من اصلا به متلب وارد نیستم
            
پاسخ دادن 1 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

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

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

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

pardis

pardis

                باسلام،چطوري در متلب از بين چند عدد يكي رو به تصادف انتخاب كنيم؟مثلا از بين [5,65,13,2,80]يكي رو به تصادف انتخاب كنم؟
            
پاسخ دادن 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

pardis

pardis

                بله اعداد ١تا ٣رو ميگيره.چطوري من اعداد مربوط به هر سطر رو از ابتداي سطر بچينم ازj=١ تا الي اخر براي سطر اول و همينطور براي بقيه سطرها؟؟
            
پاسخ دادن 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

نظر شما

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

تصویر امنیتی Refresh Icon

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

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

پربیننده ها



نمایی از یک داشبورد در کلیک ویو

نرم افزار کلیک ویو چیست و چه کاربردی دارد؟

کلیک ویو QlikView نرم افزار پیشروی طراحی و ساخت داشبورد است. با نرم افزار کلیک ویو QlikView می توانیم تمام فرآیند تولید و اتوماسیون و مدیریت داشبورد های تجاری را پیاده سازی کنیم. با وجود اینکه نرم افزار کلیک ویو QlikView تجاری است و باید برای استفاده از آن هزینه های لایسنس بپردازیم اما آنقدر قابلیت دارد...ادامه ی مطلب