2014-02-12 6 views
0

저는 Matlab 초보자이며 몇 주 동안이 특정 작업에 어려움을 겪고 있습니다.파일 네트워크에서 가져온 여러 .xlsx 파일 가져 오기

내 모든 데이터를 Matlab에 업로드하기위한 중첩 for 루프를 만들려고합니다. 주제 1의 파일로 이동하고 첫 번째 연습을 위해 파일로 이동 한 다음 3 개의 파일 (EMG, 운동 및 운동 데이터)을 업로드 한 다음 다시 이동하여 두 번째 연습을 위해 파일을 입력하고 데이터를 업로드하는 코드가 필요합니다. 그 파일에서 5 번 연습 모두에 대해 이것을 반복 한 다음 12 개의 모든 주제에 대해이 전체 과정을 반복하십시오. 인터넷에서 읽은 정보를 사용하여 하나의 파일에서 데이터를 업로드하기위한 코드를 만들었지 만,이 모든 파일의 모든 데이터를 가져 오는이 프로그램을 만드는 것은 매우 어렵습니다. 다음은

내가 현재 작성한 코드입니다 :

clear all; 
Subjects = dir('C:\Users\pricep\Desktop\JuggaData'); 
Exercise = dir('C:\Users\pricep\Desktop\JuggaData\Subject1'); 
Trialdata = dir('C:\Users\pricep\Desktop\JuggaData\Subject1\*.xlsx'); 
subjectnum = numel(Subjects); 
exercisenum = numel(Exercise); 
datanum = numel(Trialdata); 
myData = cell(datanum,1); 

for k = 1:subjectnum 
    for j = 1:exercisenum 
     for i = 1:datanum 
      filename = sprintf(Trialdata(i).name); 
      myData{k} = importdata(filename); 
     end 
    end 
end 

오류 메시지가 나타납니다,하지만 데이터가 하나 나타납니다.

내가 알기로 나는 초보자이므로 도움을 주시면 대단히 감사하겠습니다.

답변

0

subjectnum, exercisenumdatanum이 0보다 큰지 확인하십시오. 파일 중 하나가 아무 것도 발생하지 않을 가능성이 있습니다. 이 외에도 다른 문제가 있습니다 :

  • exercisenum은 모든 주제에 동일한 양의 연습 문제가 있다고 가정합니다. 잘못되었을 수도 있습니다.
  • dir은 .. (상위 디렉토리)과 . (현재 디렉토리)이라는 파일 이름을 반환합니다. 당신은 이것을 필터링하지 않습니다.
  • importdata은 상대 파일 경로와 함께 호출되며 가능하지 않습니다.
  • myData = cell(datanum,1);은 두 개 이상의 주제와 운동이 있다고 가정하고 충분한 공간을 할당하지 않습니다.
+0

Daniel에게 감사드립니다. importdata를 사용하는 대신 xlsread를 통해 데이터를 읽는 것이 좋습니다. 루프를 확장하여 필터링을위한 코드와 다른 디렉토리에 저장하는 코드를 포함 할 계획입니다. – user3302244

+0

또한 myData를 어떻게 확장해야합니까? 셀 배열로 업로드하기 때문에 크기가 충분하지 않습니까? 아니면 크기가 충분하지 않다고 말하는 차원입니까? – user3302244

관련 문제