#ifndef __MAT_LOADER_HPP__ #define __MAT_LOADER_HPP__ #include #include #include "DataLoader.hpp" namespace jdi { /** * @brief 读取 MATLAB `.mat`(**v7.3 / HDF5**)文件,可能产出**多个分组**。 * * 支持两种内容: * 1. **Simulink SDI / `SimulationData.Dataset` 导出**(`#refs#` + `#sigstream#`): * 元素可以是「信号」(timeseries,每个有自己的时间流与数据流)或「子数据集」。 * 子数据集就是用户要求的**嵌套分组**:本函数把「从根数据集到信号」的路径上 * 每一层数据集的名字用 `-` 连接起来作为分组名(例如 `A/A1/XYZ` → 分组 `A-A1`, * 信号 `XYZ`)。 * 2. **普通 v7.3 变量**:顶层数值矩阵按「列 = 信号、行 = 采样」读取, * 时间轴取采样序号;顶层结构体按字段拆成同名分组。 * * @param [IN] filePath 文件路径。 * @param [OUT] groups 读取结果(每组一个 `LoadedSource`,`name` 为该组名)。 * @param [OUT] error 失败原因。 * @param [IN] progress 进度回调(可为空)。 * @return 至少读出一组数据返回 true。 */ bool LoadMatSourceGroups(const std::wstring& filePath, std::vector& groups, std::wstring& error, const LoadProgress& progress); } // namespace jdi #endif // __MAT_LOADER_HPP__