发布时间:2026/8/20 17:20:23
imc DEVICES raw数组转Matlab mat数据 本来想将imc采集的数据进行拟合拟合出一个大概的传函用于仿真但操作过程发现影响变量太多拟合效果不好查表无法覆盖实践困难。测试功能还可以闭环调试有点困难。新叶儿做的转换软件可以使用将所有数据都打包进了mat文件安装imctermite库需要安装“适用于 C 的 Visual Studio 生成工具”链接地址raw2mat将转换的文件放到当前文件夹下即可# -*- coding: utf-8 -*-importimctermiteimportscipy.ioassioimportnumpyasnpimportosimportsys# 读取 .raw 文件的辅助函数 defread_raw_file(filepath):读取 .raw 文件返回 (time_vector, first_channel_ydata, filename_stem) 或 Nonestemos.path.splitext(os.path.basename(filepath))[0]try:imcimctermite.imctermite(filepath.encode(utf-8))exceptRuntimeErrorase:returnNone,f解析失败:{e}channels_with_dataimc.get_channels(True)ifnotchannels_with_data:returnNone,没有找到任何通道数据# 取出时间向量取第一个通道的 xdatatime_vectorNoneforchinchannels_with_data:xch.get(xdata)ifxisnotNoneandlen(x)0:time_vectornp.asarray(x,dtypenp.float64)breakiftime_vectorisNone:ydata_firstchannels_with_data[0].get(ydata)ifydata_firstisNoneorlen(ydata_first)0:returnNone,没有可用的时间数据nlen(ydata_first)dtchannels_with_data[0].get(dt,1.0)time_vectornp.arange(n,dtypenp.float64)*dt first_chchannels_with_data[0]ydatafirst_ch.get(ydata)ifydataisNoneorlen(ydata)0:returnNone,第一个通道没有 ydataydatanp.asarray(ydata,dtypenp.float64)iflen(ydata)!len(time_vector):returnNone,fydata 长度 ({len(ydata)}) 与时间向量长度 ({len(time_vector)}) 不一致return(time_vector,ydata,stem),None# 核心处理函数 defprocess_raw_files(directory,output_matcombined.mat): 处理指定目录下的所有 .raw 文件合并为一个 .mat 文件。 返回: dict 包含 success/total/skipped/message 等字段 output_pathos.path.join(directory,output_mat)raw_filessorted([fforfinos.listdir(directory)iff.lower().endswith(.raw)])ifnotraw_files:return{success:False,output_path:output_path,total_files:0,success_files:[],skipped_files:[],data_shape:(0,0),column_names:[],message:错误目录下没有找到任何 .raw 文件}ref_pathos.path.join(directory,raw_files[0])ref_result,ref_errread_raw_file(ref_path)ifref_resultisNone:return{success:False,output_path:output_path,total_files:len(raw_files),success_files:[],skipped_files:[{file:raw_files[0],reason:ref_err}],data_shape:(0,0),column_names:[],message:f错误无法从参考文件{raw_files[0]}中读取有效数据:{ref_err}}ref_time,ref_ydata,ref_stemref_result data_cols[ref_time,ref_ydata]column_names[time,ref_stem]success_files[raw_files[0]]skipped_files[]forraw_fileinraw_files[1:]:file_pathos.path.join(directory,raw_file)result,errread_raw_file(file_path)ifresultisNone:skipped_files.append({file:raw_file,reason:err})continuefile_time,file_ydata,stemresultiflen(file_time)!len(ref_time):skipped_files.append({file:raw_file,reason:f时间向量长度 ({len(file_time)}) ≠ 参考 ({len(ref_time)})})continueiflen(file_ydata)!len(ref_time):skipped_files.append({file:raw_file,reason:fydata 长度 ({len(file_ydata)}) ≠ 参考时间长度 ({len(ref_time)})})continueifnotnp.allclose(file_time,ref_time,rtol1e-10,atol1e-12):skipped_files.append({file:raw_file,reason:时间向量与参考不匹配})continuedata_cols.append(file_ydata)column_names.append(stem)success_files.append(raw_file)iflen(data_cols)1:return{success:False,output_path:output_path,total_files:len(raw_files),success_files:success_files[1:],skipped_files:skipped_files,data_shape:(0,0),column_names:column_names,message:错误除了时间列外没有有效的通道数据}data_matrixnp.column_stack(data_cols)mat_dict{data:data_matrix,column_names:column_names,source_files:[fforfinraw_filesiffinsuccess_files]}sio.savemat(output_path,mat_dict,oned_ascolumn)msgf转换完成成功合并{len(data_cols)-1}个文件矩阵形状{data_matrix.shape}ifskipped_files:msgf跳过{len(skipped_files)}个文件return{success:True,output_path:output_path,total_files:len(raw_files),success_files:success_files,skipped_files:skipped_files,data_shape:data_matrix.shape,column_names:column_names,message:msg}# 命令行入口 if__name____main__:resultprocess_raw_files(.,combined.mat)print(f\n{*50})print(result[message])print(f输出文件:{result[output_path]})ifresult[success_files]:print(f成功 ({len(result[success_files])}):)forfinresult[success_files]:print(f ✓{f})ifresult[skipped_files]:print(f跳过 ({len(result[skipped_files])}):)foreinresult[skipped_files]:print(f ✗{e[file]}—{e[reason]})或者使用官方的imc Format Converter软件去官网下载imc_STUDIO安装选择该软件即可。我从STUDIO软件中提取出了Format Converter有需要的可以私聊我

相关新闻

2026/8/20 17:20:23

技术竞赛全流程实战指南:从环境搭建到模型部署

这次我们来看一个名为“ican鼎堂杯”的项目。从名称上看,它很可能是一个技术竞赛或开发者挑战赛。这类活动通常旨在激发创新,解决特定领域的技术难题,并为开发者提供一个展示与交流的平台。对于技术社区的成员而言,参与此类活动不…

2026/8/20 17:20:23

OTA学习教程

0.序言 一方面,我在写带wifi模块的项目时,就打算实现ota,已经实现了分区,但是还没有具体实操,所以,一方面打算学习ota,另一方面。这次选用了超子的物联网开发板,使用的国产GD32&…

2026/8/20 18:26:31

中兴F50刷入UFI-TOOLS:解锁设备管理,并实现外网远程访问

文章目录每日一句正能量前言1 安装UFI-TOOLS工具2 安装cpolar内网穿透2.1 什么是cpolar内网穿透?2.2 安装cpolar插件3 穿透UFI-TOOLS以支持公网访问4 固定二级子域名总结每日一句正能量 不必追赶整片银河,你零星的微茫连缀成星轨时,自有宇宙俯身相认。 …

2026/8/20 10:17:13

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 15:09:57

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/20 0:01:41

Cline、Hermes、OpenClaw 都能连:HTTP 型 MCP 客户端全适配

后台被问得最多的一类问题是:“我用的是 Cline / Hermes / OpenClaw,能连察元的 WPS 文档服务吗?” 统一回答:能。而且这个"都能连"值得单独写一篇——不是我们挨个给每个客户端做了适配,而是所有这些客户端…

2026/8/20 0:01:41

46 个文档工具一次看懂:察元AI文档助手 MCP 工具目录速览

把察元AI文档助手接进 Claude Code 之后,我建议的第一件事不是急着下提示词,而是把它的 MCP 工具目录过一遍——46 个工具(MCP 目录版本 0.10.0),乍看吓人,其实按"一份文档的生命周期"分组之后非…

2026/8/20 8:35:23

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/20 9:15:29

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/19 16:39:34

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…