나는 이런 식으로 나온 데이터 세트를 가지고 있고이Matlab의 두 번째 열을 기준으로 동일한 번호를 가진 첫 번째 정렬 된 열을 정렬 하시겠습니까?
filename=input('Type filename.txt: ','s');
fid=fopen(filename);
mydata=textscan(fid,'%f %c','headerlines', 1, 'delimiter','\t');
fclose(fid);
% sort data
[mydata{1},idx] = sort(mydata{1})
mydata{2} = mydata{2}(idx)
데이터처럼 오름차순으로 정렬 matlab에 물어 :
0.41 U
0.41 U
0.41 U
0.41 D
0.41 U
0.41 D
0.41 U
0.41 U
0.41 D
0.41 U
0.42 U
0.42 D
0.42 U
0.42 U
0.42 U
0.42 D
0.43 U
U = undetect 및 D = 감지합니다. 주의 깊게 살펴보면 첫 번째 열의 숫자가 같은 경우 (예 : 0.41) Matlab은 첫 번째 열을 정렬하고 두 번째 열의 순서는 무시합니다. 그 첫 번째 열에서 같은 수를 본다면 내가 매트랩하는 것입니다 싶습니다 그렇다면 두 번째 열을 기반으로 수를 놓고, U는 D.
최종 정렬 된 데이터는이 싶습니다하기 전에 먼저 :
0.41 U
0.41 U
0.41 U
0.41 U
0.41 U
0.41 U
0.41 U
0.41 D
0.41 D
0.41 D
0.42 U
0.42 U
0.42 U
0.42 U
0.42 D
0.42 D
0.43 U
어떻게 든 쉽게 만들 수 있다면 1 = 감지하고 0 = 감지하지 않음 도움과 시간에 감사드립니다.
편집 : 나는 다음과 같은 코드가
o=mydata{1} %index the first column of the array mydata
c = zeros(size(mydata,1),1); % preallocate empty matrix
c = mydata{2} == 'U';
for i = 1:size(mydata,1)
curValue = mydata{i,2};
data{i,3} = ~isempty(curValue) && ischar(curValue) && strcmp(curValue ,'U');
최종
질문을 더 잘 이해하려면 데이터도 게시하십시오. –
가능한 복제 http://stackoverflow.com/questions/8620185/sort-columns-in-matlab – Phonon
사실은 해당 게시물의 확장입니다. – Amateur