Мне нужны векторы, идущие в буфере, тогда, если достигается максимальный размер буфера, один вектор должен быть удален. В FIFO-логике.
classdef shiftBuffer < handle
properties (GetAccess = 'public', SetAccess = 'protected')
vecBuffer
buffSize
bIsFilled
end
methods (Access = 'public')
function obj = shiftBuffer(size)
obj.vecBuffer = [];
obj.buffSize = size;
end
function obj = isFilled(obj, ~)
if obj.buffSize == size(obj.vecBuffer)
obj.bIsFilled = true;
return
else
obj.bIsFilled = false;
return
end
end
function obj = store(obj, vSignalSegment)
j=1;
for loop = j:size(vSignalSegment)
obj.vecBuffer = [obj.vecBuffer, vSignalSegment(j)];
if size(obj.vecBuffer) > obj.buffSize
obj.vecBuffer(1) = [];
end
end
end
end
end
Помогает правильно настроить FIFO. Пожалуйста, покажите также лучший код с этими свойствами и методами. Спасибо