ES_SAMPLE_MULTIPLE - Create model ensemble and collect values for an output function [output, output_list] = es_sample_multiple(N, W, ind_ext, es_constraints, es_options, output_function, select_function, score_function, function_args) Run elasticity sampling repeatedly, compute every time an output function (any kind of matlab variable), and return a list of the output values. This function also allows for posterior sampling (Metropolis-Monte Carlo algorithm) There is no direct way to run the sampling in parallel for two scenarios with the same random values used for saturation constants in both ensembles Inputs (nm: # metabolites; nr: # reactions) N - Stoichiometric matrix (nm x nr) W - Allosteric regulation matrix (nr x nm) ind_ext - indices of external metabolites For the inputs es_constraints and es_options, see es_default_options output_function - Output function for which response coefficients are sampled (*1) select_function - Function for filtering the sampled models (*2) score_function - Function for posterior probability sampling (*3) function_args - Arguments for output_function, select_function, score_function Outputs output_list - Results as a list of matrices output - Same results as a tensor Comments: (1) If the output function is numeric, output contains all values as a row vector (for scalars), matrix (for row or column vectors), or tensor (for matrices). (2) If a 'select_function' is provided, only samples that yield a non-zero value of this function will be considered. (3) If a score function (e.g., a log likelihood) is provided, it is evaluated every time for each sample and the values are used for Metropolis sampling instead of simple repeated sampling.