انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوال : صفر کردن درصد مشخصی از عناصر یک ماتریس سه بعدی به صورت رندوم

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

#5
اینم از کد متلب :

کد:
clear all
close all
clc

delete=4;

A=ones(3,2,3);
A_size=size(A)

deleted_before=zeros(1,2);
deleted_number=0;

while (deleted_number~=delete)
    random_1=randi([1,A_size(2)],1,1);
    random_2=randi([1,A_size(3)],1,1);
    p=0;
    for nn=1:deleted_number
        if ([random_1,random_2]==deleted_before(nn,:))
            p=1;
        end
    end
    if (p==0)
        A(:,random_1,random_2)=0;
        deleted_number=deleted_number+1;
        deleted_before(deleted_number,:)=[random_1,random_2];
    end      
end
A


سه خط اول برنامه که برای عدم تداخل اطلاعات قبلی موجود در نرم افزار متلب است . شما این سه خط یادت نره خیلی مهمه .
ماتریس A یک ماتریس کوچیکه که نتایج رو روی اون تست کردیم . delete تعداد ستون هایی (یا حالا هر اسمی که روش میگذارید) است که باید تبدیل به صفر بشه . 
ماتریس  deleted_before برای اینه که زوج اعداد تصادفی  random_1 و  random_2 که تولید شدن رو ذخیره کنیم که بعدا چک کنیم که تکرار نشده باشن .
حلقه while رو بر اساس  deleted_number می نویسیم که  deleted_number تعداد ستون هایی است که تاکنون (در حلقه) صفر کرده ایم و وقتی برابر delete شود ، حلقه پایان می یابد .
این هم نتیجه اجرای کد متلب بالا :

کد:
A_size =

     3     2     3


A(:,:,1) =

     0     1
     0     1
     0     1


A(:,:,2) =

     0     0
     0     0
     0     0


A(:,:,3) =

     0     1
     0     1
     0     1

حالا 100 بار هم که اجرا کنید میبینید که تنها 4 ستون صفر میشه (منظورم 100 بار اجرای برنامه بالا است نه اینکه برنامه را به طور 100 بار پیاپی روی یک ماتریس اجرا کنید) . عمدا تعداد ستون ها رو کم و برابر 6 گرفتم که مطمئن بشید .
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط 4i469x


پیام‌های این موضوع
RE: سوال : صفر کردن درصد مشخصی از عناصر یک ماتریس سه بعدی به صورت رندوم - توسط admin - ۱۳۹۲/۰۲/۱۰, ۰۵:۱۷ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان