读取matlab的fig文件中带errorbar的数据

clear;

% 1. 加载 .fig 文件
fig_file ='F:\2024\east_raw_data\TS\2617.fig';  % 这里替换为你的 .fig 文件路径
fig_handle = openfig(fig_file, 'new', 'invisible');  % 'invisible' 防止显示窗口

% 2. 获取当前 figure 中的所有坐标轴对象 (subplot)
axes_handles = findobj(fig_handle, 'Type', 'Axes');  % 查找所有坐标轴对象
uiopen(fig_file,1)
%figure;
% 3. 遍历每个坐标轴对象
for i = 1:length(axes_handles)
    ax = axes_handles(i);
    
    % 4. 查找该坐标轴中的所有 `errorbar` 对象
    errorbar_handles = findobj(ax, 'Type', 'ErrorBar');
    title_obj = ax.Title;  % 获取标题对象
    
    % 5. 提取标题的字符串
    if ~isempty(title_obj)  % 检查标题是否存在
        subplot_title = title_obj.String;  % 获取标题的文本内容
        disp(['Subplot ' num2str(i) ' Title:']);
        disp(subplot_title);  % 显示标题
        disp(['t=']);
        disp(subplot_title(12:14));  % 显示标题
    else
        disp(['Subplot ' num2str(i) ' has no title.']);
    end
    % 5. 提取并显示每个 `errorbar` 对象的 X, Y 数据和误差条数据
    for j = 1:length(errorbar_handles)
        j=j
        % 获取 errorbar 对象
        errorbar_obj = errorbar_handles(j);
        
        % 获取 X 数据和 Y 数据
        x_data = errorbar_obj.XData;
        y_data = errorbar_obj.YData;
        
        % 获取误差条的数据 (正负误差)
        y_error_neg = errorbar_obj.LData;  % 下误差
        y_error_pos = errorbar_obj.UData;  % 上误差
        error= errorbar_obj.YData;  % 误差;
        xerror= errorbar_obj.XData;  % 误差;

        % 显示数据
%         disp(['Subplot ' num2str(i) ', Errorbar ' num2str(j)]);
%         disp('X Data:');
%         disp(x_data);
%         disp('Y Data:');
%         disp(y_data);
%         disp('Negative Y Error:');
%         disp(y_error_neg);
%         disp('Positive Y Error:');
%         disp(y_error_pos);
           subplot(5,6,length(axes_handles)-i+1)
           hold on;
           %plot(x_data,y_data,'r*')
           errorbar(x_data,y_data,y_error_pos,'r*')
           title(subplot_title)
    end

end

% 6. 关闭图形(如果不需要再显示)
close(fig_handle);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。