2012-03-31 17 views
0

ここでは、.datファイルのデータを共有しています。私は16162種類のファイルを持っています。私は1つのファイルにすべてをマージし、MATLABでそれを読んで、1つのファイルから3つのパラメータの値を抽出し、どちらかの行または賢明ないずれかでそれらを配置する必要があります。私はCのシャープコードを使用してそれを行うことができますが、私はそれをmatlabを使用して行いたいです。誰でもコードを書いてくれて助けてくれますか?MATLABを使用して複数のファイルを1つのファイルにマージする

DISTRIBUTION: monomodal log-normal 
n : 1.000 
r_mod: .010 
sigma: 1.400 

number conc., surface. conc., volume conc. 

.1087E+01  .1866E-02  .7878E-05 

part. ave. radius, surf. ave. radius, vol. ave. radius : 
.1149E-01 .1169E-01 .1201E-01 

surface mean radius, volume mean radius : 
.1267E-01 .1392E-01 

eff. variance : 
.9939E-01 

さんが言ってみましょう:私は抽出したり、3つのパラメータを読みたい(r_modは、シグマは、表面が半径を意味する)。ここ

は、一つのサンプルファイルデータです。

r_mod sigma surface mean radius .01 1.4 1.27E-02 .02 1.4 2.67E-02 .03 1.4 3.98E-02 ... .. .. .. .. .. .. .. .. 

私はより多くを持っている:私は、このページに入れたファイルからこれらの三つのパラメータに対応する値は、.1267E-01

出力があるべき(私はしたい)1.400 0.010であります何千もの類似したファイルが同じディレクトリにあります。私は、MATLABでそれらのファイルをすべて読み込み、出力はこのように1つのファイルに表示されるはずです。

+0

StackOverflowでこの質問をした方がよいかもしれません。統計SEは、プログラミング問題よりも統計的方法論において強力です。 –

+0

どの3つのパラメータを抽出しますか?ファイルをマージしたら、個々のファイルを単に追加しましたか? – Jonas

+0

出力ファイルの形式は何ですか? –

答えて

0

すべてのファイルが同じ構造を持っているとすれば、次のようにしてジョブを実行します(コード内のコメントを正しく読み込めるようにするには、ファイル名とファイル数を変更する必要があります)。

n = 2; % Number of files you want to go through 
vals = zeros(1,3*n); 
str = 'r_mod sigma surface mean radius  '; 
k = 1; 
for i = 1:n 
    path = ['myFile',num2str(i),'.dat']; % change this to fit your file names 
    fid = fopen(path, 'rb'); 
    data = textscan(fid,'%s'); 
    fclose(fid); 
    data = data{1}; 
    vals(k) = str2double(data{8}); 
    vals(k+1) = str2double(data{10}); 
    vals(k+2) = str2double(data{40}); 
    k = k+3; 
end 
out = [str, num2str(vals)]; 
fid = fopen('output.txt', 'w'); 
fprintf(fid,out); 

ファイルoutput.txtに、目的の行が追加されました。出力ファイルを.datにする場合は、フォーマットを変更することもできます。

+0

ムスタファが自分のアカウントを削除したようです:■あなたはこの答えが十分であることを知っていますか? – JCKaz

関連する問題