Date: Apr 8, 2013 12:25 PM
Author: dpb
Subject: Re: problem with matrix

On 4/8/2013 8:22 AM, zack00 wrote:
> I have a zero matrix with 100 collumns. I save there ploting signal from infinity loop.
> i want save only last 100 collumns..Start running plot and save data to matrix.
> When the matrix is filled delete first collumn and shift to left and save the last value.
>
> Can you help me with this problem?


i=0:11,mod(i,10)+1
idx=0; % index initialization
nCol=size(y,2); % array column size
while
% Next index on range [1,nCol], increment loop counter
idx=mod(idx,nCol)+1; idx=idx+1;

y(:,idx)=yourfunc(whatever);
plot(y(:,idx))
% do whatever else...
end

One can also write the pointer logic as

idx=idx+1; if idx>nCol, idx=1; end

if like.

Whichever way you do it, for maintaining the last N computations in a
circular buffer there's no reason at all to actually shift data every
iteration.

If you want the final results saved in chronological order on
termination of the simulation, say, _THEN_ you can do the reordering once.

--