How to use the several average of same class

2 visualizzazioni (ultimi 30 giorni)
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);

Risposta accettata

David Hill
David Hill il 5 Apr 2020
a=randi(size(values,1),5,1);%randomly choose 5 rows
avg=mean(values(a,:),2);%compute mean of the rows
  5 Commenti
David Hill
David Hill il 5 Apr 2020
b=randperm(length(avg),5);
for k=1:5
a(k)=mean(avg{b(k)});
end
Kong
Kong il 5 Apr 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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by