2016-05-19 11 views
-1

こんにちは、良い日に、複数のタブを含む複数のExcelシートをMATLABにインポートする

私はいくつかのタブを持つExcelシートをMATLABにインポートしようとしています。これについては、私は小さなループを書いているが、多くの試行と調整がまだできないすべてのデータをmatlabに取得した後。ソースディレクトリには、52 x 102個のセルにそれぞれ8個のタブがある15個のExcelシートがあります。データは正と負の値を含む符号付きの形式です。ここでは、私が取り組んでいたコードは、私はインターネット上で見つけたが、成功していないさまざまな変更を適用しました。

srcdir = 'path to the folder'; 

srcfiles = dir(fullfile(srcdir, '*.xls')); 


for i = 1:length(srcfiles) 
[status,sheets] = xlsfinfo(srcfiles(i)); 

for s = 1:numel(sheets) 

[data,titles]=xlsread(srcfiles(i).name,sheets{s}); 

end 
end 

今のところ「ファイル名は文字列でなければなりません」というエラーが表示されています。文字列に変更しようとしましたが、まだ動作しませんでした。

一度だけ動作します。ソースディレクトリ(つまりsrcdir)にパスを指定する代わりに、xlsread()で直接ファイルの名前を指定します。

誰でも助けて、私は間違いを犯していますか?ありがとう

+0

'[状態、シート] = xlsfinfo(srcfiles(I))を使用する必要があります;' '[状態、シート] = xlsfinfoする必要があります( srcfiles(i).name); '最初の' for'文の直後です。 – Suever

+0

@Suever私もそれをしましたが、私にこのエラーを与えました。 validpath> getFullName(行66)を使用中にエラーが発生しました。 validpathのエラー(行23) filenameOut = getFullName(filename); xlsfinfoのエラー(行45) filename = validpath(filename); excelread(行23)のエラー [ステータス、シート] = xlsfinfo(srcfiles(i).name); – Muhammad

答えて

1

fullfileを使用してファイルへのフルパスを指定する必要があります。また、外側のforループであなたはsrcfiles(i).name代わりのsrcfiles(i)

srcdir = 'path to the folder'; 
srcfiles = dir(fullfile(srcdir, '*.xls')); 


for k = 1:numel(srcfiles) 
    filename = fullfile(srcdir, srcfiles(k).name); 
    [status,sheets] = xlsfinfo(filename); 

    for s = 1:numel(sheets) 
     [data,titles] = xlsread(filename, sheets{s}); 
    end 
end 
+0

ありがとうございました。 – Muhammad

関連する問題