Matlab编程与绘图
文章平均质量分 51
CallMeJacky
如果你有梦想的话,就要去捍卫它 。
展开
-
【Matlab】基于指标的多目标优化算法之ISDE+
最近新出了一篇进化计算的论文,学习一下:代码地址1. 源码介绍这里讲解一下代码的具体含义。下载并解压后可以看到两个子文件夹,相信熟悉进化计算的同学应该知道DTLZ和WFG的含义。没错,它们是进化算法中常用的两组测试函数。拿DTLZ为例,可以看到,其中的内容如下:共有7个matlab文件,和一个空的文件夹。2.详细细节2.1 主要流程DTLZ7主要包含7个测试问题,即DTLZ1-D...原创 2019-12-19 20:14:48 · 3183 阅读 · 2 评论 -
【Matlab】数据放大镜
通常,当要显示的数据的范围较大时,通常会将数据的某个局部细节就无法仔细观察,这个时候,如果能够放大某个局部,那么将会非常好。下图是笔者在MathWorks上面看到的一个很棒的带有数据局部放大窗口功能的工具箱。官方给出的工具箱实现代码如下:function MagInset(h, ax, ZoomArea, InsetPos, Lines) % ************ ...原创 2019-09-11 18:38:51 · 2268 阅读 · 2 评论 -
t检验比较两种算法的性能
1.t检验理论t-检验,又称学生检验,可以用于比较两组数据是否来自同一分布(可以用于比较两组数据的区分度),假设了数据的正态性,并反应两组数据的均值在统计上是否有显著差异。2.实例分析上面论文中,算法运行了30次,对于IGD指标来说,我们认为其值越小越好,如表所示,第一行中peMOPSO算法运行30次IGD指标的均值为4.08E-03,SPEA2算法运行30次IGD指标的均值...原创 2019-01-08 18:48:03 · 7936 阅读 · 1 评论 -
【Matlab】利用遗传算法、粒子群算法和差分进化算法求解Schwefel's问题
1. Schwefel's函数Schwefel's函数是一个典型的欺骗问题,有1个全局极小值点,距离另一个局部最优点很远,因此如果陷入局部最优就很难跳出。Schwefel’s函数的表达式为:2. 问题求解笔者将采用遗传算法、粒子群算法和差分进化算法对Schwefel’s问题分别进行求解,同时,对三种算法的结果进行对比分析。这里,首先定义一下问题:function z=...原创 2019-07-09 15:01:45 · 6158 阅读 · 4 评论 -
Java与Matlab混合编程通用类
有些时候,可能有一个matlab版本的程序需要转换成java版本的程序,但是,可能会遇到各种各样的问题,例如对于matlab中的一些函数的用法如果不是非常清楚的话,很可能也看不懂代码。同时,这些情况可能经常出现,或者您也不打算深入学习matlab的话,再或者您觉得matlab的绘图不错,笔者就建议您尝试采用混合编程的方式。有关java调用matlab的具体方式可以在笔者的博客Java调用Matlab程序中找到。如果调用失败,请前往Matlab运行环境MCR安装,并确保您的环境配置正确。deploytoo原创 2021-03-17 09:51:43 · 1802 阅读 · 0 评论 -
【Matlab】基于Pareto支配关系的多目标进化算法之KnEA
日常生活中的很多问题都可以建模为多目标优化问题,如典型的路径规划问题,您既想能够较快地到达目的地,又想能够减少路飞。多目标优化算法在一次运行的过程中可以产生一组Pareto最优解,是解决这类问题的强大的框架。本文主要结合论文:A Knee Point Driven Evolutionary Algorithm for Many-Objective Optimization,分析一下PlatEMO...原创 2019-12-30 20:09:19 · 6070 阅读 · 0 评论 -
【Matlab】一个Figure中绘制多组图
有些时候,需要同时绘制多个图像到一个Figure上,利用subplot可以轻松实现下图的效果:clear;%% IBEAsubplot(2, 3, 1);x = [0.1000 0.0500 0.0100 0.0050];hv = [0.4742 0.5203 0.4863 0.4808 0.4033 0.4782 0.3993 ...原创 2020-05-01 22:23:35 · 10172 阅读 · 1 评论 -
【Matlab】简单甘特图绘制
有时候我们需要绘制一些简单的甘特图,现有的软件都是比较复杂,并且不能满足我们的要求,因此,这里写一个简单的二维甘特图可视化实例,效果如下:%机器 任务 时间1 时间2 属性a={1 '#3 (25,000)' 0 100 3; 1 '#4 (24,000)' 100 196 4; 1 '#8 (24,000)' 196 372 8; ...原创 2020-04-13 15:56:53 · 2909 阅读 · 0 评论 -
【Matlab】强化Q学习算法求解迷宫问题
本篇博客向大家介绍一个利用强化Q学习求解迷宫问题的实例。在这个问题中,机器人只能向上下左右四个方向移动。在每一步,基于机器人动作的结果,它被教导和再教导是否是一个好的动作,最终整个过程被一次又一次地重复,直到它到达目的地。在这一点上,该过程将再次开始,以便可以验证所学到的东西,并且可以忘记第一遍中所做的不必要的动作,等等。这是一个很好的教学例子,在这种情况下,学习必须在旅途中进行,即不使用训练...原创 2019-09-11 11:27:39 · 2299 阅读 · 0 评论 -
【Matlab】机器学习中可能会用到的可视化方法
目录1. 可视化二维矩阵的数值2. 可视化混淆矩阵1. 可视化二维矩阵的数值function pcolorMat(mat,ncolor,ndigits)% PCOLORMAT allows you to visualize the matrix with color gradient%% USAGE:%% pcolorMat(mat,ncolor,ndigits)...原创 2019-09-11 20:34:57 · 714 阅读 · 0 评论 -
【Matlab】多目标进化算法实验平台PlatEMO
PlatEMO是一个Matlab环境下的多目标进化算法平台,内部实现了很多进化算法。原创 2019-04-03 11:17:33 · 4207 阅读 · 6 评论 -
【Matlab】折线图
function [] = test() title_text = 'title'; %标题 lagend_text = { 'algorithm1',... 'algorithm2'}; %对比算法 shape =...原创 2019-04-25 21:06:53 · 2763 阅读 · 0 评论 -
【java】调用Matlab程序
笔者之前学习过Matlab,说真的,Matlab用来仿真和绘图真的很方便了。无奈实验部分必须要用java建模,但是java绘图功能就有点弱,因此,笔者决定封装一个jar包,用来调用matlab进行绘图。本文笔者将要介绍的是如何通过matlab中的deploytool工具,将matlab中常用的函数打包成为一个jar包,然后供java程序调用。1.编写matlab脚本笔者总结了常用的ma...原创 2019-07-02 13:53:49 · 1891 阅读 · 4 评论 -
【Matlab】二维图堆叠为三维图
最近看到有人问下面的图应该怎么画。最简单的方法是使用Origin,Origin也可以很容易实现上述的功能,绘图教程:http://www.cappchem.com/Article2014/1108.html。但是,目前笔者在Matlab中尚未找到现成的相关的绘图方法供我们使用,如果看到这里的某位看官知道Matlab简单的方法,希望不吝赐教,在评论区留言给笔者。这里只是介绍一种通过Matla...原创 2018-12-04 21:54:15 · 22619 阅读 · 5 评论 -
【Matlab】PSOt工具箱使用
1. PSOt工具箱介绍PSOt为PSO的工具箱,该工具箱将PSO算法的核心部分封装起来,提供给用户的为算法的可调参数,用户只需要定义好自己需要优化的函数(计算最小值或者最大值),并设置好函数自变量的取值范围、每步迭代允许的最大变化量(称为最大速度,Max_V)等,即可自行优化。与遗传算法相比,PSO仅需要调整少数几个参数即可实现函数的优化。该算法对待优化函数没有任何特别的要求(如可微分、...原创 2019-06-24 19:59:01 · 8886 阅读 · 7 评论 -
【Matlab】下划线可能带来的错误
在进行绘图时,我们可能需要加入下划线等特殊符号,而这些特殊符号在matlab中有时会起着控制显示格式的作用,不注意的话可能有一些问题。例如,下图所示,箭头所指的两个地方由于使用了下划线符号,导致无法显示。其实,这个问题的解决方法很简单,就是利用strrep,将下划线加上反斜杠转义即可。data={0,'NSGAIII','EDF_PS',156.141,'NSGAIII','EDF_PS'...原创 2019-10-11 16:04:39 · 3647 阅读 · 0 评论 -
【matlab】绘制曲面图
一位老哥让笔者画一个下面这种图,笔者当然要拿出喜欢的Matlab啦。1. meshgrid在进行 3D 绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在xoy平面内对坐标进行采样得到的坐标对(x,y)。例如,要在 3<=x<=5,6<=y<=9,z不限制区间 这个区域内绘制一个 3D 图形,如果只需要整数坐标为采样点的话。我们可能需要下面这样...原创 2019-07-20 21:33:56 · 17451 阅读 · 1 评论 -
【Matlab】多维数据可视化方法之雷达图和气泡图
今天浏览了Matlab官网,看了一下官网提供的Matlab的绘图工具箱,因为很多之前没有注意到,部分虽然自己可以实现,但是功能不够完善,因此,今天做一下工具箱的总结,以用来记录自己的学习过程,详情请移步MathWorks绘图专区入口。目录1. 雷达图2. 多维数据可视化之气泡图2.1 加载数据2.2 3D气泡图2.3 可点击图例2.4 七维数据的3D可视化效果图2....原创 2019-09-11 01:19:45 · 9241 阅读 · 9 评论 -
【Matlab】ASCII图片生成、迷宫生成和词云图生成
目录1. 图片转为ASCII字符2. 生成迷宫3. 生成词云图1. 图片转为ASCII字符这个比较有意思,可以将一个图像转换为ASCII文字,具体工具箱代码如下:function img2txt(imfile,varargin);%IMG2TXT Converts an image to ASCII text%% img2txt(imfile) conver...原创 2019-09-11 11:26:50 · 3029 阅读 · 0 评论 -
【Matlab】均值方差对比图
有些时候,为了对比不同情况下数据的均值和方差,我们可以使用表格法,但是表格法的确定在于不够直观,其实,可以利用Matlab绘图帮助我们快速而准确地表达出我们想要表达的意思。若情况的个数比较少,那么我们可以使用箱线图表示数据的均值和方差;箱线图又称为盒图,利用matlab的boxplot函数可以很方便地画出上面的效果:boxplot(randn(30,3));若情况的个数过多,...原创 2019-09-11 17:19:32 · 18111 阅读 · 1 评论 -
【Matlab】双折线图和双柱形图混合绘图
为了更好地展示几组算法在不同情况下的几种指标,需要使用如下图所示的图像。这里,横轴代表算法,两个纵轴代表每种算法对应的不同的指标。% 数据Ncar=1:3;% 柱状图数据Norder1 = [800 1100 1250];Norder2 = [420 550 625];% 折线图数据qcar1 = [1 2 3];qcar2 = [2 4 6];% 打开新图figure;...原创 2019-10-10 12:34:02 · 13436 阅读 · 2 评论 -
【Matlab】向图像中添加帮助读者理解的额外标注信息
有些时候,为了更加清晰地表示数据,我们需要对绘好的图像添加一些其他标注信息,以帮助读者更好地理解自己的意思,本文将向大家介绍几种常用的添加额外信息的方法。注:下述实现均参考自MathWorks,在此表示感谢,如有侵权请留言联系。目录1. 添加线段2. 添加Latex公式3. 数据放大镜4.添加图标志1. 添加线段常见的两个需求:观察某个特定点的数据的值; 观察数据...原创 2019-09-11 20:31:38 · 1213 阅读 · 0 评论 -
【Matlab】散点图之五维数据可视化
在绘制5维散点图的时候,可以利用颜色代表第4维度的信息,利用气泡的大小来表示第5维度的信息。然而,这里有两个问题:如何绘制出一个可以标注气泡大小的legend; 如何在一张图上显示两个Legend。1. legendScatterMatlab官网上给出了一个绘制可以标注气泡大小的legend的实现,其具体说明如下:This function aims to simplify the...原创 2019-04-10 12:26:56 · 10896 阅读 · 6 评论 -
【Matlab】设置XTick标签显示格式为LaTeX格式
Matlab在绘图的过程中,为了充分地说明数据,往往需要配置文字说明,如公式等。此时,就需要LaTeX来帮助图例中的文字格式更加美观了。Matlab 图形中title 、xlabel、ylabel 、zlabel、textbox 和legend 等的Interpreter 属性有三个属性: latex 、tex、none。默认为tex 。LaTeX语法格式如下:Tex字符 含...原创 2019-02-20 19:59:55 · 11986 阅读 · 7 评论 -
【Matlab】进度条waitbar
h1 = waitbar(0,sprintf('%d%%',0),'name','总进度');status = 0.7;waitbar(status,h1,sprintf('%.2f%%',status*100));原创 2018-12-25 12:37:58 · 942 阅读 · 0 评论 -
【Matlab】产生混沌序列并绘制气泡图
%% 产生混沌序列x0 = 0.2983;len = 1000;squence = zeros(1,len);xn = x0;for i=1:len xn = 4*xn*(1-xn); squence(i) = xn;end%% 绘制混沌气泡图y = linspace(1,len,len);x = squence;sz = linspace(50,200,le...原创 2018-12-25 09:21:10 · 7811 阅读 · 0 评论 -
Excel绘图
根据图片生成数据。插件地址(插件并非作者原创,请恰当使用)原创 2019-01-04 09:59:22 · 2722 阅读 · 0 评论 -
【Matlab】层次聚类并绘制气泡图
%% 层次聚类Ncluster=5; %聚类个数%% dataxx=[0.7480 0.3852 1.6347; 0.0232 0.4712 1.5317; 0.5345 1.2082 1.6758; 1.4728 0.0822 0.5044; 0.4606 0.1168 1.4...原创 2018-12-24 13:08:51 · 4238 阅读 · 0 评论 -
【Matlab】使用yalmip和cplex求解器求解规划问题
1.yalmip简介yalmip是由Lofberg开发的一种免费的优化求解工具,其最大特色在于集成许多外部的最优化求解器(包括cplex),形成一种统一的建模求解语言,提供了Matlab的调用API,减少学习者学习成本。简而言之,它可以让你像书写数学模型那样输入你的模型。2.环境搭建2.1 yalmip安装yalmip下载页面,点击下载即可。解压后,将其复制到toolbox文件...原创 2018-11-16 11:10:46 · 58255 阅读 · 159 评论 -
Matlab【多台机器上等长作业调度】【差分约束系统】【Bellman-Ford算法】
【多台机器上等长作业调度问题】给定n个作业,m台机器,其释放时间分别为:r1,r2,...,rn,最晚开始时间分别为:u1,u2,...,un,每个作业需要的处理时间均为p。求一个可行调度。该问题的约束条件可以表示为:$$y_{t+p}-y_{t} \leq m\qquad {\forall r_{\min } \leq t \leq u_{\max }-p }\tag{1}$...原创 2018-10-24 13:03:38 · 769 阅读 · 2 评论 -
Matlab实现单源最短路径Bellman-Ford算法
function [flag]=bellmanford()% 输出:是否存在可行解 %G—图的邻接矩阵表示,元素值为权重 G =[3 7 2 10;1 4 4 5;1 10 8 5;9 1 8 7]; %源点 s = 1; dis = ones(1,size(G,1))*inf; %初始化 dis = init(G,s,dis); ...原创 2018-10-23 22:04:21 · 4091 阅读 · 0 评论 -
Matlab实现二分图的最大匹配
%二分图矩阵表示A=[0 1 1 0 01 1 0 1 10 1 1 0 00 1 1 0 00 0 0 1 1];m=size(A,1);n=size(A,2);%匹配个数s=0;cx=zeros(1,m);%集合Xcy=zeros(1,n);%集合Yfor i=1:m %如果i未匹配 if cx(i)==0 vis = zeros(1,...原创 2018-10-23 08:32:35 · 3326 阅读 · 8 评论 -
【Matlab】利用贝叶斯网络工具箱中的K2算法进行结构学习
下面首先介绍一个结构学习方法,接着利用Matlab中的贝叶斯网络工具箱的K2算法学习该贝叶斯网络的结构。有关贝叶斯网络工具箱的使用,请看【Matlab】贝叶斯网络工具箱简介。问题:服务器数据传送现有两台服务器(S1和S2),都会单向向用户User传送数据,服务器S1和S2之间也会有数据通讯,但无法确定他们之间的数据流向。数据包的传送只取两种可能值:T=1(成功)或者F=2(失败)。现有...原创 2019-01-04 17:36:33 · 6133 阅读 · 38 评论 -
【Matlab】贝叶斯网络工具箱简介
本文主要参考:贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现)贝叶斯网络工具箱(FullBNT-1.0.4)使用说明(一).md贝叶斯网络结构学习方法简介贝叶斯网络结构学习若干问题解释贝叶斯网络结构学习(基于BDAGL工具箱的MATLAB实现)以及自己对该工具箱的一点认识。通过借助该工具箱中的一个测试函数 k2demo1.m 了解整个贝叶...原创 2019-01-04 17:52:46 · 8342 阅读 · 6 评论 -
【Matlab】贝叶斯网络理论之结构学习理论介绍及其工具箱安装
1.结构学习的定义即寻找对数据拟合最好的贝叶斯网络结构。例如:独立抛掷两枚硬币 X 与 Y,共20次。观察到:3次正面/正面,6次正面/反面,5次反面/正面,6次反面/反面。用贝叶斯公式计算,可得到: P ( X = 正面 ) = 0.45; P ( Y = 正面 | X = 正面 ) = 1/3;...原创 2019-01-04 18:45:07 · 3820 阅读 · 1 评论 -
【Matlab】彻底清除persistent变量
MATLAB中persistent变量相当于C中局部静态变量,只能在所定义的函数内部访问到,并且一旦定义一直存在。一般的解决方案clear var 变量名新的问题如下图所示,本来想着将算法每次迭代的结果先暂时存放在一个persistent变量中,最后一次运行时将数据写入到文件中。后来调试发现,即使是利用clear var命令,该变量再次被初始化的时候仍然会被初始化为上次写入的结果...原创 2019-03-01 16:10:37 · 4421 阅读 · 2 评论 -
【Matlab】绘制雷达图及Legend灵活控制
1. 绘制雷达图本文根据:MATLAB 雷达图画图函数修改,对于原文作者表示感谢。function Draw_radar(data,lim,labels)%data是要画图的数据(根据数据的个数来确定雷达图的轴数)%lim是各指标画图上下限范围%labels是坐标轴名称 n=length(data);%维度 adj_data=zeros(n,1); poi...原创 2019-02-15 14:53:08 · 14327 阅读 · 30 评论 -
【Matlab】性能分析
性能分析工具使用方式如下:profile on;[eff] = fat(pop);profile viewer;profile off;效果如下图所示。原创 2019-01-10 09:43:09 · 1201 阅读 · 0 评论 -
【Matlab】随机森林工具箱的编译
工具箱的下载地址:随机森林工具箱及自动化编译脚本(包含tdm-gcc编译器)自动化编译随机森林工具箱,直接点击“自动配置.bat”即可。如果遇到错误,点击安装tdm-gcc-5.1.0-3编译器,并按照 Matlab安装MinGW-w64编译器中的步骤设置环境变量。...原创 2019-01-13 16:28:36 · 2763 阅读 · 0 评论 -
【Matlab】利用pdist和pdist2求各种距离
1.各种距离介绍(1).欧几里德距离Euclidean distance('euclidean') 虽然很有用,但也有明显的缺点: a.它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求; b.它没有考虑各变量的数量级(量纲),容易犯大数吃小数的毛病。所以,可以先对原始数据进...转载 2019-01-11 11:18:45 · 11572 阅读 · 1 评论