2014-10-07 3 views
0

txt 데이터 세트를 읽고 matlab에 의해 일부 분석을 수행해야합니다. txt 파일의 구조는 다음과 같다 :매트릭스 구조의 matlab에 txt 데이터 세트로드

ID 장르 AgeScale 1 M 20 ~ 26

2 F를 18-25

그래서, 나는이 txt 파일을로드하고 매트릭스를 구축하고자합니다. 나는 누군가가 이것으로 나를 도울 수 있는지 궁금해하고 있었다. 나는 fopen 함수를 사용했지만 3 열을 가진 행렬이 아닌 하나의 배열을 제공합니다.

+0

[readtable] (http://www.mathworks.com/help/matlab/ref/readtable.html) 함수를 사용해 보셨습니까? – Dan

답변

0

MATLAB에는 대화 형 데이터 가져 오기 기능이 있습니다. 명령 창에 uiimport를 입력하기 만하면됩니다. 다음과 같이 할 수 있습니다 :

  • 예제에 표시된 것처럼 표제에 따라 변수의 이름을 지정하십시오. 수동으로 변경할 수도 있습니다.
  • 변수 (열) 유형을 지정하십시오. (원하는 경우) 그 다음 당신을 위해 축하를 작동하면 숫자, 문자열 셀 어레이 등
  • 자동

를 다음에 사용하기 위해 가져 오기 스크립트를 생성, 당신은 데이터를 쓸 시간을 낭비 할 필요가 없습니다 import script :)

+0

당신은 왕입니다. 정말 귀중한 XMO. – HimanAB

+0

대단히 환영합니다 :) 문제가 해결되었다고 생각하면이 대답을 수락 할 수 있습니다. 이것은 전적으로 당신에게 달려 있습니다. – xmo

0

함수 fopen은 파일의 내용이 아닌 파일 ID 만 반환합니다. 파일을 열면 파일 ID를 사용하여 줄 단위로 읽은 다음 각 줄을 strsplit 공백을 구분 기호로 사용하여 구문 분석합니다. 당신이 당신의 데이터 세트의 숫자 값을 사용하려면, 그래서 만약 당신이 ',

fid = fopen('textfile.txt'); 

tline = fgetl(fid); 
n = 1; 
while ischar(tline)   
    data(n,:) = strsplit(tline(1:end-1),' '); 
    n=n+1; 
    tline = fgetl(fid); 
end 

fclose(fid); 

숫자 매트릭스 데이터 유형 문자열 있다는 사실을 숙지하지 :

여기에 그렇게하는 간단한 방법 함수를 str2num (최신 버전에서 str2double) 및 strtok 구분 기호 '-'로 AgeScale 문자열을 분할하는 방법을 살펴볼 필요가 있습니다.

관련 문제