Matlab读取.mat文件画图

这段代码使用MATLAB读取指定的.mat文件,然后从中提取'Y'结构体的数据。它分别在两个子图中绘制了'signal1'和'signal2',如果这些信号存在于数据中。对于每个信号,代码检查是否存在,然后进行绘制,并添加到图例中。若信号不存在于数据中,则显示相应警告。最后,启用plotbrowser以便进一步查看图表。
摘要由CSDN通过智能技术生成

var_1 = ["singnal1","singnal2"];%图一
var_2 = ["singnal3","singnal"];%图二
Modename = uigetfile('*.mat');
load(Modename);
ListName = [Modename(1:end-3),'Y'];
rec_cell = struct2cell(eval(ListName));
list_len = length(eval(ListName));
reshape(rec_cell,[],list_len);
namelist_cell = rec_cell(1,:)';
MatStr = [Modename(1:end-3),'Y(1).Data'];
x_num = length(eval(MatStr))-1;
x = 0:1:x_num;
MatName = [Modename(1:end-3),'Y.Name'];
str = [];str1 = [];str2 = [];
subplot(2,1,1)
for t = 1:length(var_1)
    if any(namelist_cell == var_1(t))
        str1 = [str1,var_1(t)];
        str = Modename(1:end-3) + "Y("  + find(namelist_cell == var_1(t)) + ").Data";
        str_plot = str(1);%
        plot(eval(str_plot));
        title('signal 1');
        hold on;
    else
        disp('mat中不存在 '+ var_1(t));continue
    end
end
legend(str1);

subplot(2,1,2)
for t = 1:length(var_2)
    if any(namelist_cell == var_2(t))
        str2 = [str2,var_2(t)];
        str = Modename(1:end-3) + "Y("  + find(namelist_cell == var_2(t)) + ").Data";
        str_plot = str(1);
        plot(eval(str_plot));
     title('signal 2');
        hold on;
    else
        disp('mat中不存在'+ var_2(t));continue
    end
end
legend(str2);
plotbrowser('on');

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MATLAB,.mat文件是一种特有的二进制数据文件格式,用于存储MATLAB的变量。.mat文件可以包含一个或多个MATLAB变量,并且可以保存变量名、数据类型等信息。使用load指令可以读取.mat文件,并在MATLAB工作空间恢复保存的变量。例如,可以使用以下代码导入一个.mat文件并作图: ```matlab load('文件名'); % 不要加.mat后缀 % 获取数据 x1 = 变量名1.x; y1 = 变量名1.y; x2 = 变量名2.x; y2 = 变量名2.y; % ... % 多组数据画图 plot(x1, y1); hold on; plot(x2, y2); hold on; % ... ``` 这样可以在一张图显示多个不同的图像线条。.mat文件MATLAB提供了一种方便的机制来存储和导出数据,使得在不同操作平台之间移动MATLAB数据更加简便。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [.mat文件Matlab读取使用操作](https://blog.csdn.net/weixin_49220054/article/details/125538440)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【MatlabMatlab导入多个.mat文件画图的过程详解](https://blog.csdn.net/weixin_44201830/article/details/127949299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MATLAB MAT文件](https://blog.csdn.net/yinyuetiandian/article/details/47085093)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zest、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值