2017-11-11 4 views
0

私はmatlabの初心者です。私は複数のMATLABコードを使用してExcelファイルから1つの新しいファイルを作成しようとします。新しいファイルを生成することができました。しかし、ファイルが混乱していると私は本当にどのようにそれを行うには考えがありません。コードは次のとおりです。複数のExcelファイルを1つのExcelファイルにインポートするには、matlabを使用しますか?

% 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

フリーズの代わりにxlsread(または最新のバージョンのMatlabをお持ちの場合は読書可能)を使用してください。お役に立てれば。

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プロパティには、テーブル内の各変数の名前が1つ含まれている必要があります。 –

+0

確かに、私は準備ができたコードを出荷していません。特にテーブルの見た目に手がかりがない場合は特に。真剣に、あなたのコードで何が起こっているのかを一度見てみましたか?これは私には、ゼロの努力で他の誰かによってあなたの仕事が完了するようにする明確な試みのように見えるからです。そして私はモデレータの介入をここで呼ぶつもりです。 –

関連する問題