我的Matlab FIFO缓冲区出队方法不起作用(“输出参数太多”)

问题描述 投票:0回答:1
classdef fifoBufferNeu < handle
    properties
        fifoBuffer
        buffSize
    end
    methods (Access = public)
        function obj = fifoBufferNeu()
            obj.buffSize = 0;
            obj.fifoBuffer = [];
        end
        function obj = enqueue(obj, nElementIn)
            obj.fifoBuffer = nElementIn;
        end
        function obj = dequeue(obj)
            obj.fifoBuffer = nElementOut;
        end
    end
end

->命令窗口:fifoBufferNeu().enqueue(8),然后nElementOut = fifoBufferNeu().dequeue()

matlab fifo
1个回答
1
投票
classdef fifoBufferNeu < handle
    properties
        fifoBuffer
        buffSize
    end
    methods (Access = public)
        function obj = fifoBufferNeu()
            obj.buffSize = 0;
            obj.fifoBuffer = [];
        end
        function enqueue(obj, nElementIn)
            obj.fifoBuffer = [obj.fifoBuffer; nElementIn];
            obj.buffSize = numel(obj.fifoBuffer);
        end
        function result = dequeue(obj)
            result = obj.fifoBuffer(1);
            obj.fifoBuffer = obj.fifoBuffer(2:end);
            obj.buffSize = numel(obj.fifoBuffer);
        end
    end
end

要使用fifo = fifoBufferNeu(),然后使用fifo.enqueue(8)fifo.dequeue()

  • 对于句柄类型的对象,您不需要从方法中返回该对象。
  • 您确实需要创建fifo的单个实例来排队或从中取出队列。您每次都创建一个新实例。
  • 您确实需要将值实际添加到队列中并从队列中返回值。
© www.soinside.com 2019 - 2024. All rights reserved.