Info
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
sorting and summing through data
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
hello please
I have the following data
for example T =
Drag Class
1 positive
3 positive
5 negative
7 positive
8 negative
6 positive
9 negative
2 positive
5 negative
9 negative
I want to write a code which will enable me to do the following computation
sort the data randomly
then when K = 1
k = 1 ( lowest positive / lowest negative) down the column
K = 2 ( lowest (positive ) + next lowest (positive) )/ (lowest ( negative) + next lowest ( negative) ) down the column till the end
K = 3 ( lowest ( positive) + next lowest ( positive) + next lowest ( positive) ) / ( lowest ( negative) + next lowest ( negative ) + next lowest ( negative)) down the column
This is done using if and conditional statement
Stop if no lowest number cannot be added to the sum anymore
Thanks in advance
Tino
2 comentarios
KALYAN ACHARJYA
el 3 de Jun. de 2019
Be specific? Consider simpler example for better illustrations.
Respuestas (1)
Raghunandan V
el 4 de Jun. de 2019
Editada: Raghunandan V
el 4 de Jun. de 2019
Hi,
I managed to solve the question. Please review and update
% positive is of class 1 and negetive is class 0 (just for ease of code)
A = [1 1; 3 1; 5 0; 7 1; 8 0; 6 1; 9 0; 2 1; 5 0; 9 0];
A_positive = A(A(:, 2) == 1);
A_negetive = A(A(:,2) == 0);
A_positive = sort(A_positive);
A_negetive = sort(A_negetive);
%get the length of positive and negetive numbers and len is taken as least of the both lengths
len = min(numel(A_positive), numel(A_negetive));
result = zeros(len,1);
for k = 1: len
result(k) = sum(A_positive(1:k))/sum(A_negetive(1:k));
end
result
if you want for only particular value of k. then remove the for loop and give specific value of k.
Regards,
Raghunandan V
2 comentarios
Raghunandan V
el 4 de Jun. de 2019
What is the format of the data?
1. Is it excel?
If yes, you can use find and replace the data in excel itself.
2. was it created by matlab?
if yes, then check the code and replace the string 'positive' and 'negetive' by 0 and 1
La pregunta está cerrada.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!