AnyMath 文档

From File

从文件中读取数据。

模块类型: EngeeFunction

库中的路径:

/RITM/RITM From To File/From File

资料描述

要使用该块,请安装/更新支持包。 节奏块。

座 From File 从文件中读取数据 AnyMath . 块部分地从文件中读取数据,而在仿真过程中不消耗内存。 块图标显示将从中读取数据的文件的名称。 块支持从文件中读取数据 CSV和 JLD2。

单位支持在模拟期间的操作 AnyMath 和半自然建模的复杂 «节奏». 工作时 «节奏» 正在文件夹中搜索文件 /home/ritm/数据.

使用块的示例 ritm-engee_demo_block_from_file。工程师 可在目录与示例。 要获取示例,请使用命令 恩吉。包裹。getdemos:

engee.package.getdemos("RITM-Engee-Blocks")

文件中数据格式的要求

支持以下类型的数据
  • 布尔;

  • Int8;

  • Int16;

  • Int32;

  • Int64;

  • UInt8;

  • UInt16;

  • UInt32;

  • UInt64;

  • 漂浮物32;

  • 漂浮64.

支持读取以下维度的数据:

*标量; *向量; *二维矩阵。

JLD2

JLD2文件中的所有信号都必须写入变量 信号 在格式 DataFrames。 数据帧 必须包含标量字段 时间 与数据类型 漂浮64. 此字段由块解释 From File 作为此行中所有其他数据的时间戳。 在建模过程中,块 From File 按顺序从文件中读取数据,并将满足条件的时间点的信号值返回模型 时间≤t,在哪里 t -当前模型时间。

using JLD2: jldsave

using DataFrames

time = collect(range(0, stop=10.0, step=0.01))
frequencies = [1.0, 2.0, 3.0]

sines = [
    [sin(2π * f * t) for f in frequencies]
    for t in time
]

counter = UInt8.(mod.(0:length(time)-1, 5))

df = DataFrame(
    time = time,
    sines = sines,
    counter = counter,
)

jldsave(joinpath(@__DIR__, "from_file.jld2"); signals = df)

df

CSV档案源

座 From File 在 CSV档案源 以支持向量和矩阵。 要以正确的格式编写,请使用以下辅助函数 信号宾 -随附的包装 "RITM-Engee-Blocks".

记录在案 数据帧 在文件中,使用:

using Main.SignalBin
SignalBin.dataframe_to_csv(df, "to_file_copy.csv")

阅读用 数据帧 从文件中,使用:

using Main.SignalBin
SignalBin.csv_to_dataframe("to_file.csv")

港口

块端口是输出信号的动态列表。 在参数中指定的文件中自动检测信号 File name: .

参数

Main group

# File name: — 输入文件的名称

Details

带有扩展名的输入文件的名称 .jld2 或 .csv档案源.

默认值

joinpath(@__DIR__, "data_file.jld2")

程序使用名称

engee_file_name_m

可调谐

无

可计算

是

# Update signals list — 更新输出信号

Details

当按下此按钮时,该单元从文件中重新读取数据并更新输出信号列表。

默认值

—

程序使用名称

update_signals_m

可调谐

无

可计算

无

# Loopback mode: — 循环模式

Details

如果选择此选项,则块将在到达文件中的最后时间点后再次开始显示时间序列。

默认值

false (关掉)

程序使用名称

loopback_m

可调谐

无

可计算

是

# Sample time: — 调用该块的时间段

Details

将计算步骤之间的间隔指定为非负数。 要继承计算步骤,请将此参数设置为 −1.

默认值

-1

程序使用名称

sample_time_m

可调谐

无

可计算

是