2012-01-17 11 views
0

私は国名と年数で200以上のExcelファイルを持っています。私はMatlabに、これらのファイルの特定のシートの特定の範囲をヘッダー付きのマトリックスとして定義したい(コードはio table-matrix-用に書かれています)、各ファイルのコードを実行して、ファイル。主な問題は、ループでファイルを処理できず、同時に各ファイルのマトリックスを定義できないことです。 単一ファイルのコードは、次のMATLABで行列を定義し、複数のExcelファイルのループを実行する方法は?

function res=cb(a) 
    a=[xlsread('aut2000.xls', 'domestic','B7:AV54')] 
    a = a(any(a'),any(a)) 
    ... 

ありがとうです。

答えて

0

Excelファイルの範囲を定義する方法(範囲にパターンがあるかどうか)に関する詳細情報がなくても、具体的なアドバイスは難しいですが、これを実行する最善の方法は、

files = {'file1.xls','file2.xls',...}; 
ranges = {'a7:d54','a6:f90',...}; 

function res=cb(files, ranges) 

for n=1:length(files) 
    a = xlsread(files{n}, 'domestic', ranges{n}); 
end 

あなたはまた、構造(files = {{'file1.xls','a4:c89'}, {'file2.xls','b7:d300'}, ...})をリンクすることができ、その構造を通じて機能ループを持っている:ループの外に配列し、その後は、単にループにするときのエントリを参照してください。

+0

ありがとうございます。しかし、matlabは最後のファイルだけの応答ファイルを作成します。タイトルを持つすべてのファイルの結果を見分けるにはどうすればよいですか?もう一度。 – user1153825

+0

@ user1153825 - いいえ、あなたがこの答えが役に立ったと思うなら、アップしてください。上記のコメントであなたが何を求めているのか分かりません。 'disp'関数を使用して、' for'ループでデータを読むときに表示できます。 – eykanal

+0

MATLABは、ファイルリストのループを作成しないかのように、1つのExcelファイルに対して1つの出力ファイルしか出力しないことを意味します。したがって、コードは動作しますが、ループが機能しないために必要なものを取得できません。私は、あなたがdisp関数についてより具体的であれば分かります。再びThx。 – user1153825

関連する問題