2014-11-18 4 views
1

기본적으로 큰 데이터 세트 파일이 있고이를위한 데이터 구조를 만드는 MATLAB 스크립트를 작성하려고합니다. MATLAB에서 구조화 된 배열을 사용하는 것에 대해 읽으려고했지만이 작업을 수행하는 방법에 대한 해결책을 찾지 못했습니다. MATLAB에서 스크립트를 작성하는 데 많은 경험이 없습니다.MATLAB에서 배열 데이터 구조를 만드는 방법은 무엇입니까?

편집 : 내 데이터 세트는 각 항목의 10 가지 특성이 기록 된 큰 목록입니다. 예를 들어, 판매 된 주택 및 특성의 100,000 개 목록은 price, county, state, date 등으로 판매 될 수 있습니다.이 파일은 txt., xls. 또는 재생하려는 형식으로되어 있습니다.

나는 그것의 데이터 구조는 형식으로 말을 생성하는 MATLAB 스크립트를 작성하고 싶습니다 :

house(i).price  
house(i).county 
house(i).state 
house(i).date 

모든 올바른 방향에 대한 제안이나이 작업을 수행하는 방법을 가르치는 예 대단히 감사하겠습니다.

+1

투표를 한 사람이 왜 그렇게했는지 설명 할 수 있고 내 질문을 개선 할 수있는 방법을 제안 해 주시면 감사하겠습니다. 감사. –

+1

나는 downvote하지 않았지만 귀하의 질문은 매우 광범위합니다. 데이터의 유형, 저장 방법 및 저장 방법에 대한 세부 정보와 예제를 제공하면 매우 유용합니다. 그렇지 않으면 우리는 이미 "구조 (http://www.mathworks.com/help/matlab/structures.html)가있다"라고 말할 수 없다. – excaza

+0

@excaza. 감사. 어쩌면 내가 쓴 편집 내용이 더 많은 문맥을 제공 할까? –

답변

1

이것은 매우 합리적인 질문이며 쉽게 해결할 수있는 것 같습니다.

파일의 형식은이 문제를 쉽고 어렵게 만듭니다. 나는 정말로 이런 종류의 작업을 위해 .xls 파일을 좋아하지 않지만, 당신이 얻는 것을 얻는다는 것을 깨닫는다. 의 그것을 탭으로 구분 된 텍스트 파일에있어 가정 해 봅시다 같은 :

Price County State Date 
100000 Sherlock London 2001-10-01 
134000 Holmes Dartmoor 2011-12-30 
123456 Watson Boston 2003-04-15 

IFI 그냥 필드 이름 행을 구문 분석하고 구조의 배열을 만들기 위해 명명 동적 구조를 사용로 전체를 읽을 것입니다.

fid = fopen('data.txt','r'); 

tline = fgetl(fid); 
flds = regexp(tline,'\s*','split'); 
% initialize the first prototype struct 
data = struct(); 
for ii=1:length(flds) 
    data.(flds{ii}) = []; 
end 
ii = 1; 
% get the first line of data 
tline = fgetl(fid); 
while ischar(tline) 
    % parse the data 
    rowData = regexp(tline,'\s*','split'); 
    % we're assuming no missing data, etc 
    % populate the structure 
    for jj=1:length(flds) 
    data(ii).(flds{jj}) = rowData{jj}; 
    end 
    % since we don't know how many lines we have 
    % we could figure that out, but we won't now 
    % we'll just use the size extending feature of 
    % matlab arrays, even though it's slow, just 
    % to show how we would do it 
    tline = fgetl(fid); 
    ii = ii + 1; 
end 
fclose(fid) 

희망이 시작됩니다.

+0

감사합니다. 당신의 대답은 도움이되었고 그것을 이해하기 위해 그것을 통해 갈 것입니다. 고마워. –

+0

@ 토마스에. 감사! 아마 내 대답을 받아 들일 것입니다. :-) 감사! – macduff

+0

언제 Price, county, state, date 변수를 추가하고 싶습니까? 정확하게 코드에 삽입해야합니까? –

관련 문제