Sorting through labelled data
显示 更早的评论
Given the data of two columns below with negative and positive label
'0,Negative'
'1,Negative'
'1,Positive'
'2,Negative'
'2,Positive'
'3,Positive'
'4,Negative'
'4,Positive'
'5,Positive'
'9,Positive'
Please I want to use the code below to sort for negative or positive numbers instead of even and odd numeric data example code below
for col = 1:size(croppedz, 2)
%sort even/odd rows, reshape each into a Kx? matrix, sum across rows and divide the two sums
% K = can be anynumber that groups it
result(:, col) = sum(reshape(sort(croppedz(1:2:end, col)), K, []), 1) ./ sum(reshape(sort(croppedz(2:2:end, col)), K, []), 1);
end
end
Thanks for your help in advance
Tino
采纳的回答
更多回答(1 个)
Priysha Aggarwal
2019-6-4
1 个投票
If you can skip using the above given for loop, you can store the above strings in a string array as :
A = ["0","Negative";
"1","Positive";
...];
Now you can sort A according to column 2:
[mat,idx] = sort(A(:,2)); % this will sort 'negative' and 'positive' labels alphabetically
sortedA = A(idx,:); %sorting column 1 accordingly
类别
在 帮助中心 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!