How to use the several average of same class

2 visualizaciones (últimos 30 días)
Kong
Kong el 5 de Abr. de 2020
Editada: Kong el 6 de Abr. de 2020
Hello.
I have a data (90 x 2857), column 2857 is a label(class).
I want to select 5 rows of the same classes randomly and compute the mean of each 5 rows.
(10 Combination 5)
So I want to get all possible combinations' average values of the same classes.
In this code, I computed all rows of the same class and got one average value.
Could you explain how to fix the code?
data = csvread('outfile.csv');
values = data(:,1:end-1);
labels = data(:,end);
avg = splitapply(@(x) {mean(x,1)}, values, labels+1);

Respuesta aceptada

David Hill
David Hill el 5 de Abr. de 2020
a=randi(size(values,1),5,1);%randomly choose 5 rows
avg=mean(values(a,:),2);%compute mean of the rows
  5 comentarios
David Hill
David Hill el 5 de Abr. de 2020
b=randperm(length(avg),5);
for k=1:5
a(k)=mean(avg{b(k)});
end
Kong
Kong el 5 de Abr. de 2020
Thank you so much. I got this error.
data = csvread('outfile.csv');
values = data(:,1:end-1);
labels = data(:,end);
avg = splitapply(@(x) {mean(x,1)}, values, labels+1);
a=mean(avg{randi(length(values),1)});
b=randperm(length(avg),5 );
for k=1:5
a(k)=mean(avg{b(k)});
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by