欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 【实验数据处理matlab程序】程序1:绘制figure文件中曲线的RMS值

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

2025/4/25 13:34:20 来源:https://blog.csdn.net/TD_Lemon/article/details/147380487  浏览:    关键词:【实验数据处理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);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词