当前位置: 首页 > news >正文

【MATLAB】解决mod函数、逻辑判断的误差问题

问题描述

希望当时间t为T的整数倍时,输出1,其他时刻输出0。理论上,用mod(t,T)==0即可,但t是很小的数,T也是很小的数,在mod时会产生误差。

问题解决

时间t在递增时,不知道什么原因产生了误差

  • 理论值:1e-7,2e-7,3e-7……;
  • 实际值:1e-7,2e-7,2.9999e-7……

最后,用mod(2.9999e-7,1e-7)会得到0.999e-7。

可以用round函数,进行四舍五入

abs(t-T*round(t/T))<1e-8

解释:

  • 当t=2.9999e-7,T=1e-7时,t/T=2.9999,round(t/T)=3
  • T*round(t/T)=3e-7,也就是理论值
  • abs(t-T*round(t/T))=0.0001e-7,用实际值-理论值再取绝对值,就是误差
  • 当误差小于某个值时,认为理论值=实际值,即可输出1。因此1e-8就是误差线,可以灵活调整。

相关文章:

  • 说一下Redis中的Gossip协议
  • 机器学习_16 朴素贝叶斯知识点总结
  • Unreal5从入门到精通之使用 BindWidget 将 C++ 连接到 UMG 蓝图
  • nginx部署vue项目访问路径问题
  • MATLAB联动本地部署的DeepSeek模型
  • JAX-RS与JAXB:实现XML数据交互的完整指南
  • 基于MATLAB的城轨车辆跨接电缆长度计算
  • 青少年编程与数学 02-009 Django 5 Web 编程 20课题、测试
  • 68页PDF | 数据安全总体解决方案:从数据管理方法论到落地实践的全方位指南(附下载)
  • 编码格式大全:类型 特点及其在网络安全中的作用
  • STM32 PWM脉冲宽度调制介绍
  • python股票分析系统部署操作过程及代码实现
  • opensuse [Linux] 系统挂在新的机械硬盘
  • Ubuntu 20 掉显卡驱动的解决办法
  • 设计模式-工厂模式
  • go语言并发的最佳实践
  • 【LeetCode Hot100】最大子数组和|动态规划/贪心,Java实现!图解+代码,小白也能秒懂!
  • 【人工智能 | 大数据】基于人工智能的大数据分析方法
  • 【nvidia】NCCL禁用P2P后果权衡
  • 【C++指南】不允许你不了解C++命名空间
  • 牛市早报|持续推进城市更新行动意见印发,证监会强化上市公司募资监管
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 以军向也门3个港口的居民发布撤离令
  • 多条跨境铁路加速推进,谁是下一个“超级枢纽”?
  • 在笔墨金石间,看胡问遂与梅舒适的艺术对话
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排