MATLAB Changing the name of a matrix with each iteration

后端 未结 3 1701
慢半拍i
慢半拍i 2020-12-02 01:10

I was just wondering if there is a clean way to store a matrix after each iteration with a different name? I would like to be able to store each matrix (uMatrix) under a dif

3条回答
  •  半阙折子戏
    2020-12-02 01:56

    Just to add to the detailed answer given by @Pursuit, there is one further method I am fond of:

    Use an array of structures

    Each item in the array is a structure which stores the results and any additional information:

    simResults(i).name = Sim;         % store the name of the run
    simResults(i).uMatrix = uMatrix;  % store the results 
    simResults(i).time = toc;         % store the time taken to do this run
    

    etc. Each element in the array will need to have the same fields. You can use quick operations to extract all the elements from the array, for example to see the timings of each run at a glance you can do:

    [simResults.time]
    

    You can also use arrayfun to to a process on each element in the array:

    anon_evaluation_func = @(x)( evaluate_uMatrix( x.uMatrix ) );
    results = arrayfun( anon_evaluation_func, simResults );
    

    or in a more simple syntax,

    for i = 1:length(simResults)
        simResults(i).result = evaluate_uMatrix( simResults(i).uMatrix );
    end
    

提交回复
热议问题