본문 바로가기
MATLAB 코딩/파일&폴더 다루기

[Matlab으로 파일&폴더 다루기] 3. 셀형 배열 원소 순서 정렬하기 (1 다음 2가 아니라 10이 나오는 문제 수정)

by bigpicture 2020. 1. 14.
반응형

3. 셀형 배열 원소 순서 정렬하기 (1 다음 2가 아니라 10이 나오는 문제 수정)


지난시간까지 코딩한 내용은 아래와 같습니다. 


#파일 목록 불러오기

path='C:\Users\Public\Sample'

list=dir(path);

name={list.name}

name2 = name(3:end);


우리가 저장한 폴더제목 목록은 아래와 같습니다. 


>> name2

name2 =

{

  [1,1] = 1.Apple

  [1,2] = 10.Johnson&Johnson

  [1,3] = 2.Microsoft

  [1,4] = 3.Amazon

  [1,5] = 4.Alphabet

  [1,6] = 5.Berkshire_Hathaway

  [1,7] = 6.Facebook

  [1,8] = 7.Alibaba

  [1,9] = 8.Tencent_Holdings

  [1,10] = 9.JPMorgan_Chase

}


1다음에 10이 나오는데요. 번호 순서대로 정렬해보겠습니다. 


#숫자만 저장

for i=1:size(name2)(2)

num(i,1)  = textscan(name2{i}, '%f');

end


#숫자가 저장된 셀을 행렬로 변환

nummat=cell2mat(num);


#크기 순서 저장

[B,I]=sort(nummat);


#크기 순서로 재배열

for i=1:size(name2)(2)

name3{1,i}=name2{1,I(i)};

end



아래는 결과입니다. 


>> name3

name3 =

{

  [1,1] = 1.Apple

  [1,2] = 2.Microsoft

  [1,3] = 3.Amazon

  [1,4] = 4.Alphabet

  [1,5] = 5.Berkshire_Hathaway

  [1,6] = 6.Facebook

  [1,7] = 7.Alibaba

  [1,8] = 8.Tencent_Holdings

  [1,9] = 9.JPMorgan_Chase

  [1,10] = 10.Johnson&Johnson


반응형

댓글