Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab- storing iterations into a single matrix and file

  1. Jan 5, 2015 #1
    Hi guys:

    I have a program which is supposed to fit x- and y-data to a certain function and give me the optimum parameters. This is no problem. What I want to do though is to perform a for loop that allows me to plot the CHANGE in those parameters over time (as I conduct a real life experiment). The code is something like this (an example):

    for i=1:5
    pause(1)
    execute_function;


    [estimates, model] = fitcurvedemo(xdata, ydata)

    end

    The output will give me five iterations of the fitted parameters (which I have a separately written program for which works), but I want to collect them into a single column and plot them against the time (i), which in this case is 1 second intervals.

    I hope this is clear.

    Thanks.
     
  2. jcsd
  3. Jan 6, 2015 #2

    kreil

    User Avatar
    Gold Member

    You could preallocate a matrix, then just concatenate the new data into it during each iteration of the loop.

    Code (Text):

    A = [];
    for i=1:5
        pause(1)
        execute_function;
        [estimates, model] = fitcurvedemo(xdata, ydata)
        A = [A; estimates];
    end
     
    If you're only doing this 5 times then it probably isn't necessary to tune it for performance. Another way to accomplish this would be to use a cell array where the parameters from each iteration get their own cell, then afterward you convert it to numeric and reshape it.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Matlab- storing iterations into a single matrix and file
  1. Iterating on Matlab (Replies: 0)

Loading...