PDA

View Full Version : فیلتر کردن داده ها



hamidkor
چهارشنبه 24 اردیبهشت 1393, 18:17 عصر
باسلام،

میخواستم بدونم که در متلب از چه تابعی یا کدی می توان برای فیلتر کردن مشروط داده ها مشابه اکسل استفاده نمود؟

برای مثال: ماتریس a را در نظر بگیرید میخوام که با یه کد یا تابع به ماتریس های c e f d b برسم. درضمن موارد تکراری شرطها می توانند بصورت مجموع ستونی و یا سطری هم باشند چون سرآخر هدف رسیدن به مجموع درایه هایی است که تو داریه اول مشابه هستند.

a=[

1
0.927232
0.959131
0.920968
0.571613
0.574259


2
0.401918
0.346025
0.72821
0.070234
0.065826


4
0.59387
0.323551
0.304301
0.458654
0.800848


2
0.156526
0.497593
0.86928
0.762909
0.413194


3
0.445227
0.414047
0.768501
0.620732
0.188405


1
0.987371
0.303235
0.888738
0.687153
0.456935


4
0.556952
0.197917
0.130293
0.599826
0.939342


5
0.398162
0.466141
0.926576
0.177103
0.484665


1
0.453658
0.52115
0.49955
0.757344
0.85195


]

b=[

1
0.927232
0.959131
0.920968
0.571613
0.574259


1
0.987371
0.303235
0.888738
0.687153
0.456935


1
0.453658
0.52115
0.49955
0.757344
0.85195


]

c=[

2
0.401918
0.346025
0.72821
0.070234
0.065826


2
0.156526
0.497593
0.86928
0.762909
0.413194


]

d=[

3
0.445227
0.414047
0.768501
0.620732
0.188405


]

e=[

4
0.59387
0.323551
0.304301
0.458654
0.800848


4
0.556952
0.197917
0.130293
0.599826
0.939342


]

f=[

5
0.398162
0.466141
0.926576
0.177103
0.484665


]

rahnema1
چهارشنبه 24 اردیبهشت 1393, 19:36 عصر
سلام
فعلا این دو روش را امتحان کنید

m={};
a1=sortrows(a,1);
c=[1 cumsum(hist(a(:,1),unique(a(:,1))))(1:end-1)+1];
for i=1:numel(c)-1
m{i}=a1(c(i):c(i+1)-1,:);
end


m={};
u=unique(a(:,1));
for i=1:numel(u)
m{i}=a(a(:,1)==u(i),:);
end

hamidkor
پنج شنبه 25 اردیبهشت 1393, 19:03 عصر
سلام
فعلا این دو روش را امتحان کنید

m={};
a1=sortrows(a,1);
c=[1 cumsum(hist(a(:,1),unique(a(:,1))))(1:end-1)+1];
for i=1:numel(c)-1
m{i}=a1(c(i):c(i+1)-1,:);
end


m={};
u=unique(a(:,1));
for i=1:numel(u)
m{i}=a(a(:,1)==u(i),:);
end


ضمن تشکر فراوان باید خدمتتون عرض کنم که کد اولی وقتی واسه همین مثال اجراش میکنم خطای زیر رو نشون میده:

Error: ()-indexing must appear last in an index expression.

در ارتباط با کد دوم که جواب رو بصورت سلولی خیلی جالب ارائه می کنه و جای کلی تقدیر تشکر از شما رو داره، میخواستم یه سوال دیگه با اجازتون بهش اضافه کنم و اونم به این صورته که اگر بخواهیم تو ماتریس سلولی جواب و در هر یک از سلول ها درایه ها رو بصورت سلولی جمع بکنیم به چه صورت خواهد بود. به عبارت دیگه ماتریس زیر رو ما میخواهیم بهش برسیم.


1
2.368261
1.783516
2.309256
2.01611
1.883144


2
0.558444
0.843618
1.59749
0.833143
0.47902


3
0.445227
0.414047
0.768501
0.620732
0.188405


4
1.150822
0.521468
0.434594
1.05848
1.74019


5
0.398162
0.466141
0.926576
0.177103
0.484665



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

rahnema1
پنج شنبه 25 اردیبهشت 1393, 19:49 عصر
دستور grpstats در متلب

matcode.ir
شنبه 27 اردیبهشت 1393, 21:04 عصر
سلام دوستان عزیز برای رفع مشکلات خودتون در مورد متلب می تونید به سایت مرجع متلب مراجعه کنید :
http://www.matcode.ir