吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4270|回复: 7
收起左侧

[其他原创] 【matlab】MATLAB数据可视化

  [复制链接]
hpqztsc 发表于 2021-4-19 22:05
之前使用对于数据可视化一直是使用的python进行分析画图的,python语言面向用户确实是很友好的,简单上手,但前段时间为了论文数据图格式,使用python调了好久才弄完。
最近学习下matlab,python的画图库也是基于matlab,两者风格完全一样,但是matlab的可视化和交互界面更为友好,调整格式可以直接拖动,简直是神器,因此进行移植。
如有不对之处,欢迎指出。代码如下:
[Shell] 纯文本查看 复制代码
function [path_name,file_name] = findfile(filepath)
namelist = dir( fullfile(filepath,'*.txt'));
k = 1;
file_name_r={{}};
path_name_r={{}};
for i = 1:length(namelist)
    if length(namelist) ==1
        if not( isfolder( fullfile(filepath,namelist.name) ) )
            path_name_r{k} = fullfile(filepath,namelist.name);
            file_name_r{k}=namelist.name;
            k = k+1;
        end                
    else
        if not( isfolder( fullfile(filepath,namelist(i).name) ) )
            path_name_r{k} = fullfile(filepath,namelist(i).name);
            file_name_r{k}=namelist(i).name;
            k = k+1;
        end        
    end    

end
path_name = path_name_r;
file_name = file_name_r;
end


[Shell] 纯文本查看 复制代码
function [index,data] = filetolist(filepath,format,inx)
fid = fopen(filepath,'r+');
list = textscan(fid,format);
fclose(fid);
index = list{1};
data = list{inx};
end


[Shell] 纯文本查看 复制代码
function [str_list] = str_diffsave(strlist,n)
begin = 0;
for i = 1:length(strlist{1})
     if not( strncmp(strlist{1},strlist{2},i) )
         begin = i;
         break;
     end
end

str_diff = [];
for i = 1:length(strlist)
    str_diff{i} = strlist{i}(begin:end-n);
end

str_list = str_diff;
end


[Shell] 纯文本查看 复制代码
function [str] = str_equalsave(strlist)
index_end = 0;
for i = 1:length(strlist{1})
     if not( strncmp(strlist{1},strlist{2},i) )
         index_end = i;
         break;
     end
end

str = strlist{1}(13:index_end - 1);
end


[Shell] 纯文本查看 复制代码
[pathname,filename] = findfile(pwd);

legend_name = str_diffsave(filename,20);
tiitle_name = str_equalsave(filename);
ylabel_name = {
'snr',   
'TotalSims',
'Time',
'Total error',
'Frame err ratio',
'Undetected error',
'ML error',
'Avg # iteration',
'Avg # iteration correct',
'Avg # iteration wrong',
'Avg decode time',
'Avg decode time correct',
'Avg decode time wrong',
'TotalVavNodeTime',
'TotalChkNodeTime',
'TotalChkNodePrjTime',
'TotalLamdaTime',
'TotalPrjExeNum',
'AVg ChkNodePrjTime',
'AVg exact decode time',
'AVg BP decode time'
}; 
for x = 4:20
    
text = [];
index =[];
format = '%f %f %s %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f';
for i = 1:length(pathname)
    [index{i},text{i}] = filetolist(pathname{i},format,x);
end

ind = cell2mat(index)';
data = cell2mat(text)';

figure(x)   
semilogy((ind(1,:)),data(1,:),'r-.',(ind(2,:)),data(2,:),'c-+',(ind(3,:)),data(3,:),'k-*','Linewidth',3.0);

set(gca,'fontsize',16);
set(gcf,'color','white');
title([tiitle_name,'576x288'],'Fontsize',16,'Interpreter','none');

xlabel('E_b/N_0(dB)','fontsize',16);
%ylabel('Average Decoding Time(Sec.)','fontsize',16);
ylabel(ylabel_name{x},'fontsize',16);
%ylabel('Avg decode time/s','fontsize',16);
h1=legend(legend_name{1},legend_name{2},legend_name{3});
%h1=legend('C1:FL-LSA','C1:HL-LSA','C1:NS-LSA');
set(h1,'FontSize',12);

grid on;


end

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
Dalek42 + 1 + 1 我很赞同!
owengolfman + 1 + 1 热心回复!
joneqm + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

蓝墨言 发表于 2021-4-19 22:13
谢谢分享
妙哉春风 发表于 2021-4-19 22:45
carrot2017 发表于 2021-4-19 23:18
8823 发表于 2021-4-19 23:52
没太明白您的意思,是不是说在python里做数据处理然后将结果导入到matlab中绘图?看代码好像是这样的。
如果是发论文,看出版社要求,有的规定比较严,指定了绘图软件比如Origin,对图表中的字体数字大小等都有明确要求。
如果是毕业论文,我倒是觉得matlab是非常好的绘图处理软件,尤其是可以把图表导出SVG矢量图,配合latex插入论文中,效果出色!
Wapj_Wolf 发表于 2021-4-20 06:37
谢谢分享,学习了。
EnterpriseSolu 发表于 2021-4-20 07:33
我一开始也是各种找代码画图表,最后发现,还是EXCEL来作图表好,数据没有就生成数据给EXCEL,实在不行,可以直接连接各种数据源,还有Power Query或第三方连接库,
作图的目的是分析数据,得出结论(make a decision), 如果把大量的精力放在画图上,各种调整参数,本末倒置
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表