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


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بررسی ستون های یک ماتریس

بررسی ستون های یک ماتریس

#1
با سلاماز برنامه متلب سوالی دارم :فرض کنید یک ماتریس n*n داریم که درآیه های آن اعداد 0 یا 1 هستند.می خواهیم شماره ستون هایی که در آنها درآیه ها همه 0 هستند و یا 90% آنها 0 هستند را دربیاوریم.چگونه می شود؟در دو حالت : 1- همه درآیه ها صفر اند                  2- مثلا 95% آنها صفر هستند.ممنون می شوم اگر جواب بدهید.
پاسخ

بررسی ستون های یک ماتریس

#2
کد:
clc;
close all;
m=input('please input your matrix:');
[s1,s2]=size(m);
b=[];
for i=1:s2
nz=nnz(m(:,i));
s=((s1-nz)*100)/s1;
if nz==0
b=[b i];
else if s>=90
b=[b i];
end
end
end
b

کد بالا ماتریس ورودی را از شما میپرسد و سپس خروجی ماتریس b را به شما میدهد  که شماره ستونهایی است که یا همگی صفر هستند یا بالاتر از 90 درصد درایه های آن ستون صفر میباشند. مثالی میزنیم :

کد:
please input your matrix:[0,0,0,0;0,0,1,0;0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0;2,3,4,0;0,0,0,0]

که ماتریس فوق به صورت زیر است :

کد:
>> m
m =
0 0 0 0
0 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
2 3 4 0
0 0 0 0

ماتریس خروجی b به صورت زیر است :

کد:
b = 1 2 4
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط mo.hadi ، admin

بررسی ستون های یک ماتریس

#3
از جواب شما ممنونم.
خوشبختانه خودم هم به یک کد دیگر رسیدم.
اگر خواستید بگید براتون بفرستم.
یا علی
پاسخ

بررسی ستون های یک ماتریس

#4
مجدد ممنونم.
پاسخ

بررسی ستون های یک ماتریس

#5
با سلام مجدد.
در صورتی که بخواهیم این ستون ها را جدا کرده و بصورت مجزا در ماتریس های دیگری بگذاریم چطور می شود؟
یعنی به عبارت دیگر اعضای b را چگونه می شود فراخوانی کرد؟
پاسخ

بررسی ستون های یک ماتریس

#6
با توجه به اینکه ماتریس ورودی در متغیر m ذخیره میشود و متغیر b شماره ستون است بنابراین میتوانیم هر یک از ستونها را به صورت زیر استخراج کنیم:

کد:
for i=1:length(b)
n(:,i)=m(:,b(i));
end
n

که ماتریس خروجی n شامل ستونهای معرفی شده در ماتریس b است.
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


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