matlab批量储存变量_[转载]整理:matlab批量读入数据文件的方法
主程序:
clc;
clear;
fidin=fopen('title.txt','r');
fidout=fopen('result.txt','w');
while
~feof(fidin)?%while ~feof 表示 若 未讀到文件末尾 則 繼續 循環
wellname=fgetl(fidin);?%如果沒有使用fgetl函數,則feof判斷沒有作用,這將是一個死循環!
titleline=strcat(wellname,'.txt');
[efc_dpt,efc_poro,efc_perm,efc_ratio]=numprocessor(titleline);
efc_rst=[efc_dpt,efc_poro,efc_perm,efc_ratio];
fprintf(fidout,wellname);
%fprintf(fidout,'%s %s %s %sn',efc_rst);
fprintf(fidout,'%8.1f %6.2f %6.2f %6.4fn',efc_rst);
end
fclose(fidin);
fclose(fidout);
部分文件名(title.txt)
B12-B51-58
B12-B53-58
B12-B55-59
B12-B55-62
B12-B55-64
B12-B57-51
B14-B50-44
B14-B50-48
B14-B51-46
B14-B52-49
B14-B54-48
B14-B54-53
B14-B54-74
B14-B55-52
B14-B55-56
B14-B55-60
B14-B55-63
B14-B55-65
B14-B55-67
B14-B55-69
B14-B55-75
B14-B56-49
B14-B56-53
B14-B56-70
…………
function
[efc_dpt,efc_poro,efc_perm,efc_ratio]=numprocessor(file)
%讀入數據,進行處理,輸出結果
matdat=load(file);
[n,l]=size(matdat);
efc_dpt=0;
efc_perm=0;
efc_poro=0;
efc_ratio=0;
for
i=1:n-1
matdat(i,1)=matdat(i+1,1)-matdat(i,1);
end
for
i=1:n-1
if matdat(i,3)==1
efc_dpt=efc_dpt+matdat(i,1);
efc_perm=efc_perm+matdat(i,5)*matdat(i,1);
efc_poro=efc_poro+matdat(i,4)*matdat(i,1);
if matdat(i,2)==0
efc_ratio=efc_ratio+matdat(i,1);
end
end
end
if
efc_dpt==0
efc_perm=0;
efc_poro=0;
efc_ratio=0;
else
efc_perm=efc_perm/efc_dpt;
efc_poro=efc_poro/efc_dpt;
efc_ratio=efc_ratio/efc_dpt;?end
井的數據
1865.2?3?0?0?0
1867.8?0?1?6.8?0.1
1874.4?3?0?0?0
1885?1?1?3.3?0.02
1888.8?3?0?0?0
1891.8?0?1?2.3?0.03
1897?3?0?0?0
1898?0?1?2.3?0.03
1903?3?0?0?0
1906.2?0?1?2.3?0.03
1911?3?0?0?0
1914.6?1?1?3.4?0.21
1919?3?0?0?0
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
多數據文件批處理的一個技巧
數據處理過程中,很多時候需要對大批的數據文件進行循環處理。如果文件名是有規律的,那么正常的方法尚可處理,但是碰到文件名沒什么規律,或規律不強時,表示出這些文件按名就是一件很頭疼的事了。假設現有以下文件需要進行循環處理,以供參考。
1、MATLAB
clc;clear;
%--將'e:/POP/data/'下的文件信息寫入構架數組file_structurefile_structure
= dir('e:/POP/data/');
%--file_structure.name下是'e:/POP/data/'內的文件名for i=3:size(file_structure)
filename =
strcat('e:/POP/data/',file_structure(i).name)?% stract 連接字符串f=netcdf(filename,'nowrite');?a=['在此對f及里面的變量操作...']?close(f)
end
總結
以上是生活随笔為你收集整理的matlab批量储存变量_[转载]整理:matlab批量读入数据文件的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js判断时间两小时之内_js判断两个时间
- 下一篇: 龙芯2k按键中断驱动_外部中断按键驱动