1
\ begingroup美元

我试着运行hydus 1 d,这样我可以做一个溶质运移参数的敏感性分析。我脚本每个MC的matlab代码生成文件运行。我不能让水蛇座运行第一路径{我}。我一直通过这个工作与matlab论坛的人都无济于事,现在我想也许这是水蛇座吗?我相信我都每次迭代所需的输入文件在每个子文件,甚至包括. exe。但我不能让水蛇座{我}执行在所有其他的路径。任何帮助的欢迎。下面的代码:

清除所有;clc;%溶质运移参数在47行选择器。在文件SolTrans = 0.0479 (0.035 0 1 0 0 0 0 273895 1 0 0 0 0];% (Kdνβ亨利SnkL1 SnkS1 SnkG1 SnkL1p SnkS1p SnkG1p SnkL10 SnkS10 SnkG10阿尔法)! !更新数字在括号中! !

% ~ ~ ~ ~ ~ ~ %添加噪声溶质运移参数num_sim = 100;% 100蒙特卡罗模拟Kd = SolTrans(1) + .02点兰特(1、num_sim);% 100 Kd值参数向量。我们假设误差正态分布的标准偏差# #。ν= SolTrans(2) + .02点兰特(1、num_sim);β= SolTrans(3) + .02点兰特(1、num_sim);% ! ! !适当改变.02点对所有这些标准DEVIATIONSN ! ! !亨利= SolTrans(4) + .02点兰特(1、num_sim);SnkL1 = SolTrans (5);SnkS1 = SolTrans (6);SnkG1 = SolTrans (7);SnkL1p = SolTrans (8);SnkS1p = SolTrans(9) + .02 *兰德(1,num_sim);% ! ! !AWI修改模型- KL -朗缪尔指数对于AWI朗缪尔吸附或0弗伦德里希吸附SnkG1p = SolTrans (10);SnkL10 = SolTrans (11);SnkS10 = SolTrans (12); SnkG10=SolTrans(13); Alfa=SolTrans(14);

% ~ ~ ~ ~ ~ ~ %初始化文件和目录

hydrus_exec = C: \用户桌面\ \杰西\水蛇座\有毒物质\ AFFF1PFOS \ \项目H1D_CALC.exe”;%的C: \程序文件(x86) \ PC-Progress \ Hydrus-1D 4 \ H1D_calc.exe ';
hydrus_ref = C: \用户桌面\ \杰西\水蛇座\有毒物质\ \项目AFFF1PFOS”;
profileDAT = C: \用户桌面\ \杰西\水蛇座\有毒物质\ AFFF1PFOS \ \项目PROFILE.DAT”;
选择= C: \用户桌面\ \杰西\水蛇座\有毒物质\ AFFF1PFOS \ \项目OPTIONS.IN”;atmosph = C: \用户桌面\ \杰西\水蛇座\有毒物质\ AFFF1PFOS \ \项目ATMOSPH.IN”;selectorIN = C: \用户桌面\ \杰西\水蛇座\有毒物质\ AFFF1PFOS \ \项目SELECTOR.IN”;
水平= C: \用户桌面\ \杰西\水蛇座\有毒物质\ AFFF1PFOS \ \项目LEVEL_01.dir”;work_dir = ' C: \ \杰西桌面\ \用户模拟的;mkdir (work_dir);

% ~ ~ ~ ~ ~ ~ %创建目录并输入文件——这一块做的工作。创建所有实现的输入文件。强制性的文件副本。dat %相应的文件夹,创建相应的选择器%。。选择器。在文件是不同的每个实现由于溶质运移参数%变量。代码读取参考选择。,将前46行复制到新文件,写的范Genuchten参数第47行,%,最后从引用复制最后十行选择器。在新文件中。

路径=细胞(1、num_sim);因为我= 1:num_sim路径{我}= strcat (work_dir, run_, num2str(我));%为每个运行创建文件夹
mkdir(路径{我});

拷贝文件(profileDAT、路径{我});% profileDAt从参考目录复制到模拟目录拷贝文件(选项,路径{我});%将选择从参考目录复制到模拟目录拷贝文件(atmosph、路径{我});% atmosph从参考目录复制到模拟主任拷贝文件(hydrus_exec、路径{我});%将选择从参考目录复制到模拟目录创建一个新的level_01百分比。迪尔在每个子目录与相关文件%目录路径fid_level = fopen (fullfile(路径{我},“LEVEL_01.dir”),“w”);流(fid_level、“% s”路径{我});文件关闭(fid_level);fileID_out = fopen (strcat(路径{我}\ selector.in)、wt);%控制选择器。in for each run % "wt"= permision for file axis type % w=Open or create new file for writing. Discard existing contents, if any. % To open files in text mode, attach the letter 't' to the permission argument, fileID_in=fopen(selectorIN); skip_lines=46; %!!! THIS IS THE LINE THAT CHANGES IN SELECTOR.IN FILE , i.e. solute transport parameters!!! for k=1:(skip_lines) x=fgetl(fileID_in); %x = fgetl(fileID)= returns the next line of the specified file, removing the newline characters. fprintf(fileID_out,'%s\n',x); % %s in the formatSpec input indicates that the values of the variables url and sitename, should be printed as text. % '\n' as a newline indicator. % "x" = prints the values from variable x end out_Sol=SolTrans; % Renaming... %Whatever the solute transport parameter is for that monte carlo run (i) out_Sol(1)=Kd(i); % Solid phase sorption Kd out_Sol(2)=Nu(i); % Van Genuchten parameter out_Sol(3)=Beta(i); % Van Genuchten parameter out_Sol(4)=Henry(i); % Kh = KL*Rmax out_Sol(9)=SnkS1p(i); % KL - LANGMUIR EXPONENT FOR AWI FOR LANGMUIR SORPTION or 0 FOR FREUNDLICH SORPTION fprintf(fileID_out,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f\n',out_Sol'); % %f = Fixed-point notation (Use a precision operator to specify the number of digits after the decimal point.) % '\n' as a newline indicator. fgetl(fileID_in); % returns the next line of the specified file, removing the newline characters. skip_lines_end=5; % CORRECT NUMBER??? DOUBLE CHECK for k=1:(skip_lines_end) x=fgetl(fileID_in); fprintf(fileID_out,'%s\n',x); end fclose('all');

结束

i = 1: num_sim exec_path = ['“' fullfile(路径{我},“H1D_CALC.exe”)”“路径{我}");(x, y) = dos (exec_path);如果x %失败的错误(exe失败);%或采取其他行动除了抛出错误结束结束

\ endgroup美元

    0

    你的答案

    通过点击“发布你的答案”,你同意我们服务条款并承认您已阅读并理解我们的隐私政策的行为准则

    浏览其他问题标记问你自己的问题