2017-11-11 8 views
0

나는 matlab에 초보자이며이 문제에 붙어있다. MATLAB 코드를 사용하여 여러 개의 Excel 파일에서 하나의 새 파일을 만들려고합니다. 새로운 파일을 생성 할 수있었습니다. 그러나 파일이 혼란에 빠졌고 나는 그것을 어떻게하는지 전혀 모른다. 코드는 다음과 같습니다.matlab를 사용하여 여러 excel 파일을 하나의 Excel 파일로 가져 오는 방법은 무엇입니까?

% Merge multiple XLS files into one XLS file 
[filenames, folder] = uigetfile('*.xls','Select the data file','MultiSelect','on'); % gets directory from any folder 
% Create output file name in the same folder. 
outputFileName = fullfile(folder, 'rainfall.xls'); 
fidOutput = fopen(outputFileName, 'wt');       % open output file to write 
for k = 1 : length(filenames) 
    % Get this file name. 
    thisFileName = fullfile(folder, filenames{k}); 
    % Open input file: 
    fidInput = fopen(thisFileName); 
    % Read text from it 
    thisText = fread(fidInput, '*char'); 
    % Copy to output file: 
    fwrite(fidOutput, thisText);  
    fclose(fidInput); % close the input file 
end 
fclose(fidOutput); 

나는 결과 데이터가 얼마나 엉망인지 보여주는 그림입니다. 저 좀 도와 주 시겠어요? 고맙습니다. error

+0

동일한 질문을 반복해서 쓰면 아무 효과가 없습니다. OP의 프로필 활동을 살펴보십시오. –

답변

0

freads 대신 xlsread (또는 최신 버전의 Matlab을 사용하는 경우 readtable)를 사용하십시오. 희망이 도움이됩니다.

0
[files,folder] = uigetfile('*.xls','Select Files','MultiSelect','on'); 
output = fullfile(folder,'rainfall.xls'); 

c = cell(0,5); 

for i = 1:numel(files) 
    c_curr = table2cell(readtable(fullfile(folder,files{i}),'ReadVariableNames',false)); 
    c = [c; c_curr]; 
end 

tab = cell2table(c,'VariableNames',{'MyVar1' 'MyVar2' 'MyVar3' 'MyVar4' 'MyVar5'}); 

writetable(tab,output); 

물론 모든 파일에는 동일한 수의 열이 있어야하며 모든 열은 모든 파일에서 동일한 기본 데이터 형식을 가져야합니다.

+0

파일이 어떻게 생겼는지 모르겠으니 말하기 어렵습니다. 어쨌든 당신이해야 할 일은 당신이 읽는 테이블을 for 루프 내에서 하나의 테이블로 병합하는 것이다. 그런 다음 스크립트 끝에서 루프 밖에서 작성 가능한 호출을 이동하고 병합 결과를 대상으로 변경합니다. –

+0

답장을 보내 주셔서 감사합니다, Tommaso. 위의 코드를 시도하지만 "cell2table (line 57)을 사용하는 중 오류가 발생했습니다. VariableNames 속성에 테이블의 각 변수에 대해 하나의 이름이 있어야합니다." –

+0

물론, 나는 준비된 코드를 배송하지 않을 것입니다. 특히 테이블이 어떻게 생겼는지에 대한 단서가없는 경우 특히 그렇습니다. 진지하게, 당신은 당신의 코드로 어떤 일이 벌어지고 있는지 한번 보았습니까? 이것은 저에게 제로의 노력으로 다른 사람이 일을 끝내는 명백한 시도처럼 보입니다. 그리고 중재자 개입을 여기 전화 할게. –

관련 문제