Usually the waveform history is a 1d array but this is dynamic and adjusts to the type of waveform array. If you have two arrays clustered (to show two waveform graphs together, the history data requires an array of clustered data. I am not sure when you would have a 2d array of data since it is usually flattened to 1d array and displayed as concatinated data? Also if you are using the waveform as just a buffer it is probably not the best method to do this, I would read the data and build a 1d array inside of a loop (concatinate data arrays using a shift register or write data to a preallocated array and keep track of the index), you can then process this array. If you are reading the data into the buffer space of a waveform graph then processing the data, you can get into trouble when the buffer is overwritten (this buffer is fixed and not dynamic) or a graph is cleared durring runtime. I would be curious to see the screenshot of the 2d array history.
-Paul