【实验数据处理matlab程序】程序1:绘制figure文件中曲线的RMS值

立意

在本课题所涉及的实验中,需要将2个拉线式位移传感器中的数据收集并处理,在此基础上求解相应的速度

主要功能

  1. 针对一个figure文件中仅包含一个plot,且该plot中包含指定数目的曲线,求这些曲线的RMS值;
  2. 针对一个figure文件中包含多个plot,且该plot中包含相同数目的曲线,求这些曲线的RMS值;

1figure1plot3curve的RMS值计算

% 读取 .fig 文件
fig = openfig('yourfigurename.fig');% 获取所有的 axes 对象
axes_handles = findobj(fig, 'Type', 'axes');% 假设所有曲线都在第一个 axes 上
if ~isempty(axes_handles)ax = axes_handles(1);% 获取所有的 line 对象line_handles = findobj(ax, 'Type', 'line');% 获取图例对象legend_obj = findobj(fig, 'Type', 'legend');% 确保有三条曲线if length(line_handles) == 3% 获取图例的文本内容if ~isempty(legend_obj)legend_text = get(legend_obj, 'String');elselegend_text = cell(1, 3);for i = 1:3legend_text{i} = ['Curve ' num2str(i)];endendfor i = 1:3% 获取第 i 条曲线的数据x = get(line_handles(i), 'XData');y = get(line_handles(i), 'YData');% 计算 RMS 值rms_value = rms(y);% 显示结果fprintf('%s 的 RMS 值为: %.4f\n', legend_text{i}, rms_value);endelseerror('图中曲线数量不为 3 条。');end
elseerror('未找到 axes 对象。');
end% 关闭图形
close(fig);    

1figure8plot4curve的RMS值计算

% 读取 .fig 文件
fig = openfig('vehicle_dynamics_erformances2.fig');% 获取所有的 axes 对象(即 subplot)
axes_handles = findobj(fig, 'Type', 'axes');% 确保有 8 个 subplot
if length(axes_handles) == 8% 获取每个 axes 的位置信息positions = zeros(8, 4);for i = 1:8positions(i, :) = get(axes_handles(i), 'Position');end% 按照 4 行 2 列的布局排序% 先按行排序,同一行内按列排序[~, sort_indices] = sortrows([-positions(:, 2), positions(:, 1)]);sorted_axes_handles = axes_handles(sort_indices);for subplot_index = 1:8ax = sorted_axes_handles(subplot_index);% 获取当前 subplot 中的所有 line 对象line_handles = findobj(ax, 'Type', 'line');% 确保当前 subplot 中有 4 条曲线if length(line_handles) == 4% 获取当前 subplot 的图例对象legend_obj = findobj(ax, 'Type', 'legend');% 获取图例的文本内容if ~isempty(legend_obj)legend_text = get(legend_obj, 'String');elselegend_text = cell(1, 4);for i = 1:4legend_text{i} = ['Curve ' num2str(i)];endendfprintf('Subplot %d 中各曲线的 RMS 值:\n', subplot_index);for line_index = 1:4% 获取第 line_index 条曲线的数据line_handle = line_handles(line_index);x = get(line_handle, 'XData');y = get(line_handle, 'YData');% 过滤掉无效值(如 NaN)valid_indices = ~isnan(y);valid_y = y(valid_indices);% 计算 RMS 值rms_value = rms(valid_y);% 显示结果fprintf('  %s 的 RMS 值为: %.4f\n', legend_text{line_index}, rms_value);endelseerror(['Subplot ' num2str(subplot_index) ' 中曲线数量不为 4 条。']);endend
elseerror('图中 subplot 数量不为 8 个。');
end% 关闭图形
close(fig);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kotlin的kmp编程中遇到Unresolved reference ‘java‘问题

解决办法 打开 File → Project Structure → Project 确保 Project SDK 是 与你的 jvmToolchain 保持一致 如果没有,点击右上角 Add SDK 添加 JDK 路径 同步Sync 然后就正常了。 package org.example.projectimport androidx.compose.animation.AnimatedVi…

静电放电测试中垂直和水平耦合板的作用

在静电放电(ESD,Electrostatic Discharge)测试中,垂直耦合板(Vertical Coupling Plane, VCP)和水平耦合板(Horizontal Coupling Plane, HCP)是模拟设备在实际环境中因静电放电产生的…

Web开发-JavaEE应用JNDI注入RMI服务LDAP服务DNS服务高版本限制绕过

知识点: 1、安全开发-JavaEE-JNDI注入-LADP&RMI&DNS等 2、安全开发-JavaEE-JNDI注入-项目工具&手工原理等 演示案例-WEB开发-JavaEE-JNDI注入&LDAP&RMI服务&DNS服务&高版本限制绕过 JNDI全称为 Java Naming and DirectoryInterface&am…

基于Transformer与随机森林的多变量时间序列预测

哈喽,我不是小upper,今天和大家聊聊基于Transformer与随机森林的多变量时间序列预测。 不懂Transformer的小伙伴可以看我上篇文章:一文带你彻底搞懂!Transformer !!https://blog.csdn.net/qq_70350287/article/detail…

初识网络原理

文章目录 1.IP地址2.端口号3.网络中的五元组4.协议分层5.封装和分用6.客户端与服务器 1.IP地址 IP地址 (IP Address): 用于在网络中唯一标识一台设备(主机、路由器等)。IP地址分为IPv4和IPv6两种版本。IPv4是32位地址,通常表示为四个用点分隔…

健康养生之道

健康养生是一种积极的生活态度,是对自己和家人的关爱。从生活的细微之处做起,便能为健康打下坚实的基础。 在生活习惯方面,要注重细节。保持居住环境的整洁与通风,让生活空间舒适宜人。勤洗手、勤换洗衣物,养成良好的卫…

几种电气绝缘类型

1. 基本绝缘 1.1 绝缘等级 1.2 I类设备 2. 附加绝缘 3. 双重绝缘 4. 加强绝缘 5. 功能性绝缘 1. 基本绝缘 用于防止触及带电部件的初级保护,该防护是由绝缘材料完成的 基本绝缘的目的在于为防电击提供一个基本的保护,以避免触电的危险,不过此类绝缘只能保证正常状态下…

01.浏览器自动化webdriver源码分析之启动函数

日后,网络爬虫也好,数据采集也好,自动化必然是主流。因此,笔者未雨绸缪,在此研究各类自动化源码,希望能够赶上时代,做出一套实用的自动化框架。 这里先研究传统的webdriver中转来进行浏览器自动…

PLOG安装

Plog可以通过以下命令安装 cd ~ && git clone https://github.com/SergiusTheBest/plog.gitcd plog && mkdir buildcd build && cmake ..make && sudo make installcd ~ && sudo rm -rf ./plog若无法科学上网,可使用git cl…

Cyber SpaceGuidance网安学习指南见解

免责声明 如有异议请在评论区友好交流,或者私信 内容纯属个人见解,仅供学习参考 如若从事非法行业请勿食用 如有雷同纯属巧合 版权问题请直接联系本人进行删改 前言 提示:这里可以添加本文要记录的大概内容: 提示:以…

第十五届蓝桥杯 2024 C/C++组 下一次相遇

目录 题目: 题目描述: 题目链接: 思路: 自己的思路详解: 更好的思路详解: 代码: 自己的思路代码详解: 更好的思路代码详解: 题目: 题目描述&#xf…

Vue3中provide和inject数据修改规则

在 Vue3 中,通过 inject 接收到的数据是否可以直接修改,取决于 provide 提供的值的类型和响应式处理方式: 1. 若提供的是普通值(非响应式数据) javascript 复制 // 父组件 provide(staticValue, 123); 子组件修改行…

今日CSS笔记

原手写笔记 ------------------------------------------------------------------------------------------------------- css选择器的种类有很多种。这里只介绍几种常用的选择器。 1. 标签选择器标签选择器是最基本的选择器,它可以选择所有的标签。例如&#xff…

健康生活新指南

在 “朋克养生” 与 “躺平焦虑” 并存的时代,真正的健康生活无需刻意 “内卷”。这几个简单又实用的养生妙招,能让你在忙碌日常中悄悄升级健康状态,轻松拥抱活力人生。​ 一、饮食:吃对食物,给身体 “加 Buff”​ 别…

轻量级景好鼠标录制器

景好鼠标录制器(详情请戳 官网)是一款免费无广的键鼠动作录制/循环回放工具,轻松自动化应对一些重复繁琐的操作任务,如来回切换窗口、文档同一相对位置的复制粘贴等场景,兼容Win XP - 11 。毕竟此款本身主打简约类型&a…

结构体与共用体-------C语言经典题目(3)

结构体 1.如何定义和使用结构体指针? 1.结构体指针的定义 首先需要定义结构体类型,例如表示学生信息的结构体: struct Student {char name[50];int age;float score; };接着,使用struct 关键字和指针符号* 声明结构体指针&#x…

未来教育风向标 | 教育学顶流985高校,华东师范大学《AIGC技术赋能教育数字化转型的机遇与挑战》,13所大学deepseek

今天大师兄给大家推荐的是华东师范大学祝智庭教授的《AIGC技术赋能教育数字化转型的机遇与挑战》。华东师范大学是一所985学校,在最新的国家学科测评中,软件工程为A级,教育学为A级。 可以说在AI和教育的结合上是国内top级别的存在。 此讲义探…

Java常用正则表达式及使用方法

在 Java 中,Pattern 和 Matcher 类是 java.util.regex 包的核心,用于处理正则表达式。 Pattern 类 Pattern 类表示编译后的正则表达式,它提供了一种将正则表达式字符串编译成可执行对象的方式,以便后续用于匹配操作。 常用方法…

车载软件架构 --- 驾驶员不感知的控制器软件运行

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

深度学习3.5 图像分类数据集

%matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transforms from d2l import torch as d2l代码执行流程图 #mermaid-svg-WWhBmQvijswiICpI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-…