mkkamrani
جمعه 06 شهریور 1394, 21:49 عصر
یک ماتریس دو ستونه در شبکه اجتماعی که در هر سطر کاربر ستون 1 با کاربر ستون 2 در ارتباط است را چگونه می توان به یک ماتریس 22166*22166 (صفر و یک) تبدیل کرد. به صورتی که داریه m و n با مقدار 1 نشان دهنده ارتباط میان کاربر m و n و مقدار 0 نشان دهنده عدم ارتباط میان کاربران باشد.(تعداد کاربران: 22166 )
rahnema1
شنبه 07 شهریور 1394, 11:10 صبح
سلام
اگه مشکل کمبود حافظه ندارید می تونید با دستور زیر ماتریس بزرگ را ایجاد کنید که حدود 400 تا 500 مگ حافظه مصرف می کنه اما سرعت کار با این ماتریس زیاد هست
فرض کنید ماتریس دو ستونه اسمش M باشه ماتریس S با ابعاد 22166 در 22166 به صورت زیر ایجاد می کنیم
S = zeros(22166, 'uint8');
S(sub2ind([22166, 22166], M(:, 1), M(:, 2))) = 1;
اگه کمبود حافظه باشه می تونید ماتریس خلوت ایجاد کنید:
S = sparse(M(:, 1), M(:, 2), ones(size(M,1), 1), 22166, 22166);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.