How to evaluate mean for column

1 Ansicht (letzte 30 Tage)
Karolina
Karolina am 5 Mai 2015
Kommentiert: Karolina am 6 Mai 2015
I have a data with 5 columns: X,Y,Z,A,B, the first three columns represent coordinates, the next ones some attributes of objects.
A column has values: 0 or 1, B columns has values: 1, 1, 1, 2, 2, 3, 3, ,3 ,3 , 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, ....
I would like to evaluate the mean value of A column for every individual value in column B. Eg. Evaluate mean value from column A but only for points which in B have value 1.
Does somebody know which function should I use to do this? Thank you in advance!

Akzeptierte Antwort

Michael Haderlein
Michael Haderlein am 5 Mai 2015
You can use arrayfun:
dx=zeros(100,1);
dx(randi(100,10,1))=1;
B=cumsum(dx);
A=(1:100).^2;
meanvals=arrayfun(@(x) mean(A(B==x)),unique(B));
  9 Kommentare
Michael Haderlein
Michael Haderlein am 6 Mai 2015
values=unique(B);
nums=histc(B,values);
small=nums>5 & out<1.3;
large=nums>5 & out>=1.3;
sl=small+2*large;
In sl you should have what you want. Plese see that I used "nums" as variable name as "Size" is pretty close to "size" and that's a Matlab function. Better don't name variables like this to prevent errors from the beginning.
Karolina
Karolina am 6 Mai 2015
Super! Thank you very much! Have a nice day!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Andrei Bobrov
Andrei Bobrov am 6 Mai 2015
[~,~,c] = unique(B);
out = accumarray(c(:),A(:),[],@mean);

Ahmet Cecen
Ahmet Cecen am 5 Mai 2015
Below does the example you listed, change the value 1 to do the others.
mean(A(B==1))
  1 Kommentar
Karolina
Karolina am 5 Mai 2015
Thank you for your answer. Do you know if there is some way to do this for all values in my B column automatically? In my B column I have values from "1" to "n" (I do not know the biggest value) and for every value I would like to have the mean from A column.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Variables finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by