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.

--