主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

seek

在事件流中设置读取位置

自 R2022b 起

    此函数需要 Streaming Data Framework for MATLAB® Production Server™

    说明

    offset = seek(stream,position) 将事件流 stream 的读取位置设置为 position。您可以指定一个数字绝对位置或相对位置,例如 "Beginning""End" 分别表示流的开始或结束。seek 返回下一个读取操作发生的位置。

    示例

    offset = seek(stream,position,origin) 将事件流的读取位置相对于指定的 origin 移动 position 个事件。

    示例

    示例

    全部折叠

    创建一个 TestStream 对象来从 MATLAB 托管的事件流中读取事件并将事件写入其中。

    ts = testStream;

    将示例时间表数据写入事件流。

    load indoors
    writetimetable(ts,indoors)

    从流中读取数据。该流包含 60 个事件,但默认情况下流的窗口大小为 100。因此,readtimetable 一次读取即可读取整个流。读取位置是流末尾之后的一个位置。

    tt = readtimetable(ts);

    将读取位置移回第一个事件。

    seek(ts,"Beginning");

    创建一个 InMemoryStream 对象来从 MATLAB 托管的事件流中读取事件并将事件写入其中。配置对象以一次读取 10 个事件。

    numRows = 10;
    is = inMemoryStream(Rows=numRows);

    将时间表数据写入事件流。

    load indoors
    writetimetable(is,indoors)

    将读取位置从结束位置向后移动 10 行。

    seek(is,-numRows + 1,"End");

    从流中读取最后 10 个事件。

    tt = readtimetable(is)
    tt =
    
      10×2 timetable
    
               Time            Humidity    AirQuality
        ___________________    ________    __________
    
        2015-11-17 13:00:19       37           79    
        2015-11-17 14:13:31       37           80    
        2015-11-17 15:26:43       37           79    
        2015-11-17 16:39:55       37           77    
        2015-11-17 17:53:07       37           79    
        2015-11-17 19:06:19       37           79    
        2015-11-17 20:19:31       37           80    
        2015-11-17 21:32:43       37           81    
        2015-11-17 22:45:55       37           79    
        2015-11-17 23:59:07       35           79    

    输入参数

    全部折叠

    连接到事件流的对象,指定为 KafkaStreamInMemoryStreamTestStream 对象。

    事件流中下一次读取开始的位置,指定为绝对位置或相对位置。

    绝对位置

    指定以下值之一:

    • 一个正整数,表示从读取位置移动到的事件流开头的事件数。您不能指定大于流长度的整数。例如,seek(stream,5) 将读取位置移动到流中的第五个事件。

    • 指示读取位置移动到的事件时间戳的日期时间标量。如果流中不包含与指定日期或时间相对应的事件,则流位置将移动到指定时间之后的第一个时间。例如,seek(stream,datetime(2022,5,13,16,34,26)) 将读取位置移动到时间戳为 13-May-2022 16:34:26 的事件。

    相对位置

    指定以下值之一:

    • "Beginning" - 流中第一个可用的事件。例如:seek(stream,"Beginning")

    • "End" - 刚刚经过流中的最后一个事件。例如:seek(stream,"End")

    • "Current" - 刚刚经过流中的当前事件。例如:seek(stream,"End")

    • 如果指定 origin,则为正整数或负整数,表示相对于该起源的事件数量。例如,seek(stream,-10,"End") 将读取位置从流中的最后一个事件移动 10 个位置。

      position 相对于 origin 不得超出流的任一端。如果 origin"End",那么 position 一定是负数。如果 origin"Beginning",那么 position 一定是正数。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | datetime

    position 指定的读取位置相对于的原点,指定为以下值之一:

    • "Beginning" - 读取位置相对于流中第一个可用的事件。

    • "End" - 读取位置相对于流中的最后一个事件。

    • "Current" - 读取位置相对于流中的当前事件。

    数据类型: string | char

    版本历史记录

    在 R2022b 中推出