ورود

View Full Version : پرسش



Abtin Aryamehr
سه شنبه 21 بهمن 1393, 15:08 عصر
با سلام خدمت دوستان* یه سؤال در مورد متلب دارم اینکه چطور میشه یه ماتریس بزرگ یه سوپرماتریس رو تو متلب بنویسیم آیا فرم خاصی یا متلب این فرم داره یا اینکه باید اونو ساخت یا نمیدونم هر چیزدیگه ای نحوه نوشتن اون به چه صورت هست لطفاً راهنمایی کنید.با تشکر زیاده جسارت است آریامهر/

rahnema1
سه شنبه 21 بهمن 1393, 15:25 عصر
سلام
نمیدونم منظور شما از ماتریس خیلی بزرگ چیه. چون حافظه کامپیوتر ظرفیت محدود داره و اگه اندازه ماتریس از یه حد بالاتر بره دیگه این کار امکان پذیر نیست
مگر اینکه ماتریس شما شامل مقدار قابل توجهی صفر باشه که شما می تونید ماتریس خلوت یا sparse استفاده کنید تا در حافظه صرفه جویی بشه

Abtin Aryamehr
سه شنبه 21 بهمن 1393, 21:03 عصر
سلامنمیدونم منظور شما از ماتریس خیلی بزرگ چیه. چون حافظه کامپیوتر ظرفیت محدود داره و اگه اندازه ماتریس از یه حد بالاتر بره دیگه این کار امکان پذیر نیستمگر اینکه ماتریس شما شامل مقدار قابل توجهی صفر باشه که شما می تونید ماتریس خلوت یا sparse استفاده کنید تا در حافظه صرفه جویی بشهبله،ببینید یه فایل پیوست میکنم یه ورد هست که دوتا سوپرماتریس مثل همونی که مد نظر ماست اون ماتریس دومیه رو تومتلب نوشتن و به توان رسوندن تا حالت حدی بشه و تبدیل شده به اون ماتریس اولیه که همه اعداد اون با هم برابرند اینو وارد متلب کردن حالا ماهم یه همچین ماتریسی داریم میخوایم وارد متلب کنیم لطفاً یه نگا بندازین دارم برا پایان نامه کار میکنم کارم گیر همین یه نکته هست ماتریس ما هم شبیه به همونه و مدلش مثل اونه(در ضمن من متلب بلد نیستم) یه جوری بگین که متوجه بشم با تشکر/

rahnema1
سه شنبه 21 بهمن 1393, 21:43 عصر
شما الان می خواهید این اعداد که در فایل ورد هست وارد متلب کنید؟
ماتریسها هم که خیلی کوچک هستند

rahnema1
سه شنبه 21 بهمن 1393, 22:24 عصر
حدودا به توان 450 رسیده

a=[0 0 0 0 0 0 0 0 0 0 0 0 0 0;
.094 0 .1463 .1099 .1248 0 0 0 0 0 0 0 0 0;
.244 .1638 0 .1944 .25805 0 0 0 0 0 0 0 0 0;
.287 .1697 .1528 0 .2665 0 0 0 0 0 0 0 0 0;
.375 .3166 .3517 .3458 0 0 0 0 0 0 0 0 0 0;
0 .2335 0 0 0 0 0 .778 0 .269 .519 .389 .519 0;
0 .1166 0 0 0 0 0 0 0 .102 0 .159 0 0;
0 0 .28 0 0 .331 0 0 .652 0 0 0 0 0;
0 0 .07 0 0 0 0 .222 0 0 0 0 .177 .183;
0 0 0 .1908 0 .114 .4 0 0 0 .177 .237 .304 0;
0 0 0 .1593 0 .24 0 0 0 .216 0 0 0 .424;
0 0 0 0 .2037 .183 .6 0 0 .266 0 0 0 .393;
0 0 0 0 .10815 .132 0 0 .178 .147 0 0 0 0;
0 0 0 0 .03815 0 0 0 .17 0 .304 .214 0 0];

disp(a^450)

Abtin Aryamehr
چهارشنبه 22 بهمن 1393, 10:42 صبح
حدودا به توان 450 رسیدهa=[0 0 0 0 0 0 0 0 0 0 0 0 0 0;.094 0 .1463 .1099 .1248 0 0 0 0 0 0 0 0 0;.244 .1638 0 .1944 .25805 0 0 0 0 0 0 0 0 0;.287 .1697 .1528 0 .2665 0 0 0 0 0 0 0 0 0;.375 .3166 .3517 .3458 0 0 0 0 0 0 0 0 0 0;0 .2335 0 0 0 0 0 .778 0 .269 .519 .389 .519 0;0 .1166 0 0 0 0 0 0 0 .102 0 .159 0 0;0 0 .28 0 0 .331 0 0 .652 0 0 0 0 0;0 0 .07 0 0 0 0 .222 0 0 0 0 .177 .183;0 0 0 .1908 0 .114 .4 0 0 0 .177 .237 .304 0;0 0 0 .1593 0 .24 0 0 0 .216 0 0 0 .424;0 0 0 0 .2037 .183 .6 0 0 .266 0 0 0 .393;0 0 0 0 .10815 .132 0 0 .178 .147 0 0 0 0;0 0 0 0 .03815 0 0 0 .17 0 .304 .214 0 0];disp(a^450)خوب حالا میخوایم ماتریس رو نرمالیزه کنیم یعنی اینکه جمع هر ستون برابر یک شود الان اگه جمع بزنی یک نیست برای نرمالیزه کردن باید چکار کرد چون تمام اعداد تقریباً برابرند یک ستون رو نرمالیزه میکنیم جمع اعداد اون ستون حالا هرکدوم بشه یک برای اینکار چه باید کرد؟

rahnema1
چهارشنبه 22 بهمن 1393, 10:50 صبح
خوب حالا میخوایم ماتریس رو نرمالیزه کنیم یعنی اینکه جمع هر ستون برابر یک شود الان اگه جمع بزنی یک نیست برای نرمالیزه کردن باید چکار کرد چون تمام اعداد تقریباً برابرند یک ستون رو نرمالیزه میکنیم جمع اعداد اون ستون حالا هرکدوم بشه یک برای اینکار چه باید کرد؟

b = bsxfun(@rdivide , a, sum(a))

Abtin Aryamehr
چهارشنبه 22 بهمن 1393, 13:22 عصر
b = bsxfun(@rdivide , a, sum(a))یه مشکل بوجود اومد توماتریسی که ما نوشتیم تو متلب در آخر که اینو زدیم (;[) ارور داد ارورشم اینه Error using vertcatDimensions of matrices being concatenated are not consistent این یعنی چی باید چکار کرد لطفا راهنمایی کنید؟

rahnema1
چهارشنبه 22 بهمن 1393, 16:38 عصر
درست وارد نکردید
یکی از سطر ها کم یا زیاد داره