# Sorting through labelled data

조회 수: 1 (최근 30일)
Tino 2019년 6월 4일
답변: Priysha Aggarwal 2019년 6월 4일
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
Tino

댓글을 달려면 로그인하십시오.

### 채택된 답변

KSSV 2019년 6월 4일
str = { '0,Negative'
'1,Negative'
'1,Positive'
'2,Negative'
'2,Positive'
'3,Positive'
'4,Negative'
'4,Positive'
'5,Positive'
'9,Positive'} ;
% Get positive
idx = contains(str,'Positive') ;
str(idx)
##### 댓글 수: 2없음 표시없음 숨기기
Tino 2019년 6월 4일
Thanks for your swift anwser KSSV
how do I seperate the values from the character to get a different cell for positives and negatives
KSSV 2019년 6월 4일
str = { '0,Negative'
'1,Negative'
'1,Positive'
'2,Negative'
'2,Positive'
'3,Positive'
'4,Negative'
'4,Positive'
'5,Positive'
'9,Positive'} ;
V = regexp(str,'\d+','match') ;
V = [V{:}] ;
iwant = cellfun(@str2num,V')

댓글을 달려면 로그인하십시오.

### 추가 답변 (1개)

Priysha Aggarwal 2019년 6월 4일
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

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

### Community Treasure Hunt

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

Start Hunting!

Translated by