how to store an output in a function (or bring out the stored output into the workspace) for n-number of model run
6 views (last 30 days)
I have a hydrological model which runs N number of times to calibrate the parameters.
For each model run, I have a following function where it grabs the modeled simulated output, as well as, NSE output for that run.
function [SimRR, NSE]=HYPE(x)
SimRR = dlmread('output.txt','\t','I2..I100');
NSE_num = importdata('subbasin2.txt','\t');
NSE=NSE_num.data(); %NSE value is located in the second spot
Everything runs fine. Here, I'd like to store each NSE value for N number of times. (eg. if I'm running the model 3000 times, then I would be having 3000 NSE values stored in an array).
I tried using 'assignin' to bring the value to the base and it only stores NSE value of the last run. If there is a way to store an output generated from a function, please let me know.
If you have any further questions, feel free to comment and I'll provide you with more details.
Ken Atwell on 29 Oct 2019
Assuming NSE is a scalar double (that is, a single number), When you call HYPE, you can append the NSE result to an (intially empty) vector:
% NSE should be length 3000