3%> containing the contents of a (set of) ParaMonte simulation output progress file(s) whose paths match
4%> the specified input ``pattern`` or the simulation specification ``sampler.spec.outputFileName``.<br>
7%> This function is to be only used
for post-processing of the output progress file(s) of an already finished simulation.<br>
8%> Although possible,
this method is NOT meant to be called by all processes in MPI-
parallel simulations.<br>
10%> \param[in] sampler : The input
object of superclass [pm.sampling.Sampler](@ref
Sampler)
11%> whose type and properties determine the type of the output
object(s).<br>
12%> (**optional**. If empty, it is set to [pm.sampling.Sampler()](@ref
Sampler).)
13%> \param[in] pattern : The input scalar MATLAB
string containing the pattern matching
14%> the desired progress file(s) whose contents is to be read.<br>
15%> The specified ``pattern`` only needs to partially identify
16%> the
name of the simulation to
which the progress file belongs.<br>
17%> For example, specifying ``
"./mydir/mysim"`` as input will
18%> lead to a search
for file(s) beginning with
"mysim" and
19%> ending with ``
"_progress.txt"`` inside the directory ``
"./mydir/"``.<br>
20%> If there are multiple files matching in the input ``pattern``,
21%> then all such files will be read and returned as elements of a
list.<br>
22%> If the specified pattern is a valid existing URL, the file will be
23%> downloaded as a temporary file to the local system, its contents
24%> shall be parsed and the file will be subsequently removed.<br>
25%> If the input ``pattern`` is empty, then the method will search
26%>
for any possible candidate files with the appropriate suffix
27%> in the current working directory.<br>
28%> (**optional**. If empty, it is set to ``sampler.spec.outputFileName`` or
if empty, it is set to ``
"./"``.)
29%> \param[in] sep : The input MATLAB
string containing the field separator used in the file(s).<br>
30%> (**optional**. If empty, it is set to ``sampler.spec.outputSeparator`` or
if empty, it is automatically inferred.)
33%> ``progressList`` : The output MATLAB cell array of objects of superclass [pm.sampling.FileContentsProgress](@ref
FileContentsProgress),
34%> each of
which corresponds to the contents of a unique ParaMonte sampler progress file.<br>
36%> <li> If the input argument ``sampler`` is of type [pm.sampling.Sampler](@ref
Sampler),
37%> then the output array elements are of type [pm.sampling.FileContentsProgress](@ref
FileContentsProgress).<br>
38%> <li> If the input argument ``sampler`` is of type [pm.sampling.Paradram](@ref
Paradram),
39%> then the output array elements are of type [pm.sampling.FileContentsProgress](@ref
FileContentsProgress).<br>
45%> progressList = pm.sampling.readProgress();
46%> progressList = pm.sampling.readProgress([]);
47%> progressList = pm.sampling.readProgress([], []);
48%> progressList = pm.sampling.readProgress([], [], []);
49%> progressList = pm.sampling.readProgress([], pattern);
50%> progressList = pm.sampling.readProgress([], [], sep);
51%> progressList = pm.sampling.readProgress([], pattern, sep);
52%> progressList = pm.sampling.readProgress(sampler, pattern, sep);
57%> See the documentation of the ParaMonte MATLAB samplers
58%> (e.g., [pm.sampling.Paradram](@ref
Paradram))
for example usage.<br>
63%> sampler = pm.sampling.Sampler();
65%> progressList = pm.sampling.readProgress([],
"./out/test_run_");
66%> progressList = pm.sampling.readProgress(sampler,
"./out/test_run_");
68%> sampler.spec.outputFileName =
"./out/test_run_";
70%> progressList = pm.sampling.readProgress(sampler, [],
",");
71%> progressList = pm.sampling.readProgress(sampler);
73%> progressList = pm.sampling.readProgress(
"./out/test_run_",
",");
75%> sampler.spec.outputSeparator =
",";
77%> progressList = pm.sampling.readProgress(sampler,
"./out/test_run_");
79%> sampler.spec.outputFileName =
"./out/test_run_";
80%> sampler.spec.outputSeparator =
",";
82%> progressList = pm.sampling.readProgress(sampler);
89%> \AmirShahmoradi, Saturday Nov 2 2024, 10:32 PM, Dallas, TX.<br>
90%> \FatemehBagheri, May 20 2024, 1:25 PM, NASA Goddard Space Flight Center (GSFC), Washington, D.C.<br>
94 if 0 < pm.array.len(sampler.spec.outputSeparator)
95 sep = string(sampler.spec.outputSeparator);
102 if 0 < pm.array.len(sampler.spec.outputFileName)
103 pattern = string(sampler.spec.outputFileName);
113 sampler = pm.sampling.Sampler();
116 pathList = sampler.findfile(
"progress", pattern);
117 progressList = cell(numel(pathList), 1);
119 for ifile = numel(pathList) : -1 : 1
122 disp(
"processing file: """ + pathList(ifile) +
"""");
125 if isequal(
class(sampler),
"pm.sampling.Sampler") || isequal(
class(sampler),
"pm.sampling.Paradram")
126 progressList{ifile} = pm.sampling.FileContentsProgress(pathList(ifile), sampler.silent, sep);
128 help(
"pm.sampling.readProgress")
129 disp("class(sampler)");
130 disp( class(sampler) );
132 + "Invalid input ``sampler``
object type." + newline ...
133 + "See the documentation displayed above for more " + newline ...
134 + "information on possible values for ``sampler`` argument." + newline ...
function name(in vendor)
Return the MPI library name as used in naming the ParaMonte MATLAB shared library directories.
function list()
Return a list of MATLAB strings containing the names of OS platforms supported by the ParaMonte MATLA...
This is the base class for generating objects that contain the contents of a progress file generated ...
This is the ParaDRAM class for generating instances of serial and parallel Delayed-Rejection Adaptive...
This is the base class for the ParaMonte sampler routines.
function parallel()
Return a scalar MATLAB logical that is true if and only if the current installation of MATLAB contain...
function readProgress(in sampler, in pattern, in sep)
Return a list of objects of superclass pm.sampling.FileContentsProgress containing the contents of a ...
function which(in vendor)
Return the a MATLAB string containing the path to the first mpiexec executable binary found in system...