سلام
من از تابع randi استفاده کردم ، در کدی که شما نوشتید پس از چند بار تکرار کردن متوجه شدم کد ناقصه و خروجی اونی نمیشه که هدفمون است (اگر در خروجی عبارت numel(A)-nnz(A) رو محاسبه کنیم همیشه یک عدد نیست و تعداد درایه های ماتریس خروجی که صفر میشن متغیره )، کد من به شکل زیره :
ولی باز هم همون مشکل بالا وجود داره ، من باید برای تایید خوبی الگوریتمم ، درصد حذف اطلاعات رو دقیقا مشخص کنم و مثلا به ترتیب برای 10 درصد ، 20 درصد و .... 90درصد حذف اطلاعات یک سری محاسبات انجام بدم . در کد بالا تریس ها از بالا تا پایین حذف میشه ولی من میخوام از همون اول مشخص کنم مثلا 20 درصد تریس ها رو حذف کن که با توجه به اینکه 120*120 تریس داریم بنابراین میشه : (120*120)*20/100 که تعداد تریس های صفر شده هست . میتونم به جای delete قرار بدم : (120*120)*20/100 ، ولی مشکلی که هست اینه که ماتریس های random_x و random_y ساخته میشه شاید وقتی مختصات نقاط تریس ها رو انتخاب میکنیم دارای یک مختصات بشن مثلا (2,3) دو بار تکرار بشه ، احتمالش خیلی کمه ولی ممکنه . در این مورد راه حلی دارید ؟ ماتریس one برای بعدا هست که میتونم از روی تریس هایی که حذف شدند رو مشخص کنم.
من از تابع randi استفاده کردم ، در کدی که شما نوشتید پس از چند بار تکرار کردن متوجه شدم کد ناقصه و خروجی اونی نمیشه که هدفمون است (اگر در خروجی عبارت numel(A)-nnz(A) رو محاسبه کنیم همیشه یک عدد نیست و تعداد درایه های ماتریس خروجی که صفر میشن متغیره )، کد من به شکل زیره :
کد:
% Eliminate Random Traces
delete=2000;
random_x= randi([1,121],1,delete);
random_y=randi([1,121],1,delete);
one=ones(delete,delete);
for i=1:delete
m(:,random_x(i),random_y(i))=0;
one(random_x(i),random_y(i))=0;
end
ولی باز هم همون مشکل بالا وجود داره ، من باید برای تایید خوبی الگوریتمم ، درصد حذف اطلاعات رو دقیقا مشخص کنم و مثلا به ترتیب برای 10 درصد ، 20 درصد و .... 90درصد حذف اطلاعات یک سری محاسبات انجام بدم . در کد بالا تریس ها از بالا تا پایین حذف میشه ولی من میخوام از همون اول مشخص کنم مثلا 20 درصد تریس ها رو حذف کن که با توجه به اینکه 120*120 تریس داریم بنابراین میشه : (120*120)*20/100 که تعداد تریس های صفر شده هست . میتونم به جای delete قرار بدم : (120*120)*20/100 ، ولی مشکلی که هست اینه که ماتریس های random_x و random_y ساخته میشه شاید وقتی مختصات نقاط تریس ها رو انتخاب میکنیم دارای یک مختصات بشن مثلا (2,3) دو بار تکرار بشه ، احتمالش خیلی کمه ولی ممکنه . در این مورد راه حلی دارید ؟ ماتریس one برای بعدا هست که میتونم از روی تریس هایی که حذف شدند رو مشخص کنم.
دوست دارم زندگی رو . . .