画图之前建议先想好自己要画什么样的图,再去找相关代码。
本文汇总了一些matlab画图代码和修饰指令。
连线图就是连接一个又一个的点,最后形成一个图(折线图),但是当对进行限制,比如x以一个极小的值从一个点增加到另一个点(例如:x=1:0.01:10),那么他们的连线就是一段近似的曲线。
所以连线图可以进行变换,可以画成折线图或者曲线图。
所以以下两段代码就很不一样
y1=sin(x1);
x1=0:0.1*pi:2*pi; %x是以0.1*pi的增值,一点一点的加到2*pi,pi就是圆周率Π的matlab写法
plot(x1,y1);
y2=sin(x2)
x2=0:2*pi; %x是以1为增值,一点点的增加到pi
plot(y2)
于是把这两个代码合并画在一个图上
x1=0:0.1*pi:2*pi;
y1=sin(x1);
plot(x1,y1);
hold on; %hold on用于连接这两个图,是第二张图不覆盖第一张图,使第二张图画在第一张图上
x2=0:2*pi;
y2=sin(x2)
plot(x2,y2)

很明显,一个是较光滑的连线图,一个是较不光滑的连线图
x为向量时,以该元素的下标为横坐标 元素值为纵坐标绘出曲线
示例:
x=[1 2 3 5 10 8];
figure(1);
plot(x);
x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线, 曲线数等于x数组的列数。
x=[1 3 5];
y=[4 7 8];
figure(1);
plot(x,y);

y=f(x)的函数也可以用plot(x,y)
示例:
x=0:pi/100:2*pi; %x是从0开始 以pi/100的间隔增加至2pi
y=2*exp(-0.5*x).*sin(2*pi*x);
figure(1);
plot(x,y);
y=f(x) x=f(t)的函数也可以用plot(x,y)来画
示例:
t = -pi:pi/100:pi;
x = t.*cos(3*t);
y = t.*sin(t).^2;
plot(x,y)

绘制以x1为横坐标、y1为纵坐标的曲线1, 以x2为横坐标、y2为纵坐标的曲线2,等等。 其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。
示例:
x1=[1 2 3 4];
y1=[4 5 6 6];
x2=[1 3 5 7];
y2=[7 8 8 9];
figure(1);
plot(x1,y1,'r',x2,y2,'b');

绘制双纵坐标图
示例:
x1=[1 2 3 4];
y1=[4 5 6 6];
x2=[1 3 5 7];
y2=[7 8 8 9];
plotyy(x1,y1,x2,y2);

绘制三维连线图
示例:
t=1:0.1:10;
x=t;
y=sin(t);
z=cos(t);
figure(1);
plot3(x,y,z)

| 指令 | 线性 |
| - | 实线 |
| – | 虚线 |
| : | 点线 |
| -. | 点划线 |
| . | 用点号标出数据点 |
| ○ | 用圆圈标出数据点 |
| × | 用叉号标出数据点 |
| + | 用加号标出数据点 |
| s | 用小正方形标出数据点 |
| D | 用菱形标出数据点 |
| V | 用下三角标出数据点 |
| ^ | 用上三角标出数据点 |
| < | 用左三角标出数据点 |
| > | 用右三角标出数据点 |
| v | 用六角形标出数据点 |
| P | 用五角形标出数据点 |
| 指令 | 效果 |
| 'LineWidth’ | 指定线宽 |
| 'MarkerSize' | 指定标记大小 |
示例:
x=[1 2 3 5 10 8];
figure(1);
plot(x,':+','LineWidth',1.5,'MarkerSize',10);
%用线宽为1.5的点线,用大小为10的加号标出数据点

bar(y) 创建一个条形图,y 中的每个元素对应一个条形。如果 y 是 m×n 矩阵,则 bar 创建每
组包含 n 个条形的 m 个组。
即一个条形里面是各个成分的累计
clc;clear;
y =[2 2 3;
2 5 6;
2 8 9;
2 11 12];
figure(1)
bar(y,'stack') %二维的累计式垂直直方图
figure(2)
bar3(y,'stcak') %三维的累计式垂直直方图


clc;clear;
y =[2 2 3;
2 5 6;
2 8 9;
2 11 12];
figure(1)
barh(y,'stack') %二维的累计式水平直方图

y =[2 2 3;
2 5 6;
2 8 9;
2 11 12];
axis([0 15 0 5]);
bar(y,'group'); %二维的分布式垂直直方图
hold on;
bar3(y,'group'); %三维的分布式垂直直方图


y =[2 2 3;
2 5 6;
2 8 9;
2 11 12];
barh(y,'group');

pie(X) 使用 X 中的数据绘制饼图。饼图的每个扇区代表 X 中的一个元素。
示例:
X=[2,2,1,5];
figure(1);
pie(X);

若要偏移第n个饼图切片,请将相应的y元素设置为1,不偏移的部分为0。 y中元素与x中元素顺序相对应。
示例:
X=[2,2,1,5];
y = [0 1 0 1];
figure(4)
pie(X,y) %显然第二个,第四个数要进行偏移,得到部分偏移的饼状图

{}内的abc为文字描述,会替代概率百分比
示例:
clc;clear;
X=[0.07,0.93,1];
figure(1);
pie(X,{'a','b','c'});
pie3(x)绘制三维饼状图
示例:
x=[2,2,1,5];
figure(1)
pie3(x,y)

绘制偏移的三维饼状图,y代表是否发生偏移,0为不偏移,1为偏移。x为所需要绘制的图形
示例:
x=[2,2,1,5];
y = [0 1 0 1];
figure(1)
pie3(x,y)

绘制空心圆圈图,俗称气泡图
示例:
clc;clear;
x=1:4;
y=[1 3 5 4]
figure(1);
scatter(x,y);

修饰:
| 代码 | 效果 |
| scatter(x,y,a) | a为常数,标识圈的大小 |
| scatter(x,y,‘b’) | 'b'为修饰颜色,b为蓝色 |
| scatter(x,y,'MarkerFaceColor') | 'MarkerFaceColor'为实心 |
示例:
clc;clear;
x=1:4;
y=[1 3 5 4]
figure(1);
scatter(x,y,1000,'MarkerFaceColor','b');

绘制实心散点图
示例:
clc;clear;
x=1:4;
y=[1 3 5 4]
figure(1);
gscatter(x,y)

常见画法为:stem(x)或者stem(x,y),其中当这里的x,y都是常数是将绘制在某点的离散杆图
示例:
clc;clear;
x =linspace(0,2*pi,60); %x的线性间距
a = sin(x);
b = cos(x);
stem(x,a)
hold on
stem(x,b)

y=[1 2 2 5 5 6 8 9 7 2];
stem(y);

画标准正态分布概率密度函数
示例:
x = -5:0.01:5;
y = normpdf(x, 0, 1); %生成 均值为0,方差为1的正态分布数
plot(x,y); %画图
grid on; %加方格

填充部分:
area(x,y)函数常用于为图像填充颜色
x = -5:0.01:5;
y = normpdf(x, 0, 1); %均值为0,方差为1
plot(x,y); %画图
grid on; %加方格
hold on;
x2=-1:0.01:1;
y2 = normpdf(x2, 0, 1); %均值为0,方差为1
area(x2,y2) %颜色填充

绘制正态分布函数,是对上面函数的累积求和
x = -5:0.01:5;
y = normcdf(x, 0, 1); %均值为0,方差为1
plot(x,y);
grid on;

画正态拟合的直方图
示例:
rng default;
r = normrnd(10,1,50,1); % 用均值 10 和方差 1 从正态分布生成大小为 50 的样本。
histfit(r)

正态概率图,常用于证明一组数据是否服从正态分布。
其中:横轴为变量区间,纵轴为累计概率分布。红色点划线为根据分析数据均值和方差构建的正式正态分布线,蓝色点为分析样本点,越接近于直线说明样本正态特性越好。
示例:
clc;clear;
y=[580 564 595 560 577 526 564 571 552 550 563 554 540 551 584 554 581 553 557 533 551 514 611 570 540 563 529 585 566 563 561 558 564 570 523 582 566 535 584 549 558 563 551 601 567 553 559 552 563 553 597 553 520 534 567 532 566 576 555 568 538 556 552 546 526 567 544 558 543 559 549 585 591 536 530 546 523 572 572 552 565 562 552 549 567 596 539 595 518 539 597 559 551 550 581 543 597 551 537 544 565 547 534 551 587 563 557 538 575 540 582 549 537 551 542 601 541 591 569 548 575 558 548 550 572 581 589 551 534 595 574 563 567 555 572 560 578 566 571 563 586 568 519 569 559 570 543 548 569 549 606 593 573 582 539 608 581 529 536 557 563 587 550 553 538 588 582 541 559 565 554 536 576 597 575 533 545 586 592 566];
normplot(y);

使(m *n)幅子图中第k个子图成为当前图
示例:
x1=[1 2 3 4];
y1=[4 5 6 6];
x2=[1 3 5 7];
y2=[7 8 8 9];
subplot(2,2,1); %在2*2的图窗中绘制第一个子图,即左上角的图
plot(x1,y1);
subplot(2,2,2); %在2*2的图窗中绘制第二个子图,即右上角的图
plot(x2,y2);

在指定的位置上开辟子图,并成为当前图
示例:
x1=[1 2 3 4];
y1=[4 5 6 6];
x2=[1 3 5 7];
y2=[7 8 8 9];
subplot('position',[0.2 0.2 0.3 0.3]);
plot(x1,y1);

先解释meshgrid函数
meshgrid是Matlab中用于生成坐标网络采样点的函数。
语法为:
即:复制网格向量x和y生成矩阵网格(a,b)的坐标,其中,a,b,可以为常数(1:10,1:20等等这样的数),也可以是a=x,b=y。具体可看下面的代码示例
即:复制网格向量x和y生成矩阵网格(c,c)的坐标
即:复制网格向量x和y生成矩阵网格(x,y,z)的坐标
所以,三维网格图画法如下:
x=1:0.1:10;
y=1:0.1:10;
[x, y] = meshgrid(1:10,1:10);
%这里的1:10和1:10,改成1:0.1:10和1:0.1:10,会使整个图更加曲,更加平滑,网格也就更细
%改成:[x,y]=meshgrid(x,y),同样也是对的,而且可能更合理
z=x.^2-y.^2;
mesh(x,y,z)

surf函数和mesh函数的调用格式基本相同两者的区别在于mesh绘出彩色的线,而surf绘出彩色的面除了surf函数图形外,还有其他子函数,可以对在原本图形上绘制更多功能性曲线。
示例:
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
surf(x,y,z)

可以绘制带有等高线的三维表面图形
示例:
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
surf(x,y,z)
hold on;
surfc(x,y,z)

绘制带有阴影的三维表面图形
示例:
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
surf(x,y,z)
hold on;
surfl(x,y,z)

| 代码 | 效果 |
| shading faceted | 默认效果,代码不写也可以 |
| shading flat | 去掉网格线 |
| shading interp | 色彩更平滑过渡 |
示例:
clc;clear;
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
subplot(1,3,1)
surf(x,y,z)
hold on;
title('1') %默认效果,代码我没写
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
subplot(1,3,2)
surf(x,y,z)
shading flat;
hold on;
title('2') %模糊度2
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
subplot(1,3,3)
surf(x,y,z)
shading interp;
title('3') %模糊度3
如图所示
冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
axis vis3d
示例:
[x,y] = meshgrid(-5:0.5:5);
z = sqrt(x.^2+y.^2)+2e-10;
z = sin(z)./z;
axis vis3d;
surf(x,y,z)
figure():绘制图窗
hold on:保持打开的命令
hold off:关闭图形保持功能
| 指令 | 颜色 |
| b | 蓝色 |
| g | 绿色 |
| r | 红色 |
| c | 青色 |
| m | 品红 |
| y | 黄色 |
| k | 黑色 |
示例:
x=[1 2 3 5 10 8];
figure(1);
plot(x,'g'); %‘g’ 说明是绿色

x=[1 2 3 5 10 8];
figure(1);
plot(x,'r'); %‘r’是红色

部分RGB调色对照表,仅供参考。
| 颜色 | R | G | B |
| 黑色 | 0.00 | 0.00 | 0.00 |
| 灰色 | 0.75 | 0.75 | 0.75 |
| 石板灰 | 0.44 | 0.50 | 0.41 |
| 暖灰色 | 0.50 | 0.50 | 0.41 |
| 白色 | 1.00 | 1.00 | 1.00 |
| 天蓝色 | 0.94 | 1.00 | 1.00 |
| 淡黄色 | 1.00 | 0.92 | 0.80 |
| 红色 | 1.00 | 0.00 | 0.00 |
| 珊瑚红 | 1.00 | 0.50 | 0.31 |
| 砖红 | 0.70 | 0.13 | 0.13 |
| 粉红 | 1.00 | 0.75 | 0.80 |
| 桔红 | 1.00 | 0.27 | 0.00 |
| 黄色 | 1.00 | 1.00 | 0.00 |
| 金黄 | 1.00 | 0.84 | 0.00 |
| 橙色 | 1.00 | 0.38 | 0.00 |
| 橘黄 | 1.00 | 0.50 | 0.00 |
| 淡黄 | 0.96 | 0.87 | 0.70 |
| 棕色 | 0.50 | 0.16 | 0.16 |
| 巧克力色 | 0.82 | 0.41 | 0.12 |
| 褐色 | 0.63 | 0.32 | 0.18 |
| 蓝色 | 0.00 | 0.00 | 1.00 |
| 钴色 | 0.24 | 0.35 | 0.67 |
| 深蓝 | 0.10 | 0.10 | 0.44 |
| 祖母绿 | 0.00 | 0.78 | 0.55 |
| 天蓝 | 0.53 | 0.81 | 0.92 |
| 绿色 | 0.00 | 1.00 | 0.00 |
| 草绿 | 0.50 | 1.00 | 0.00 |
| 青色 | 0.00 | 1.00 | 1.00 |
示例:
x=[1 2 3 5 10 8];
figure(1);
plot(x,'color',[0.1 0.1 0.9]); %绘制带颜色的图

grid on加网格线
hidden on 将网格设为不透明
hidden off 将网格设为透明
背景颜色
x=[1 2 3 5 10 8];
figure(1); %创建画窗
set(1,'color',[0 0 0]); %修改figure外背景色
plot(x); %绘画

具体改成什么颜色可根据RGB慢慢调
2.更改figure内背景色
x=[1 2 3 5 10 8];
figure(1);
set(1,'color','white') %figure外为白色
colordef black; %figure内为黑色
plot(x); %绘图

背景色还可以是透明色
x=[1 2 3 5 10 8];
figure(1);
set(1,'color',[0 0.5 0]) %figure外墨绿色
colordef none; %figure内是透明色
plot(x);

axis函数可以调整图的坐标轴范围和纵横比等等。
axis([xmin xmax ymin ymax zmin zmax]);
如果只给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。如果给出了全部参数,则绘制出三维图形。
axis函数的功能丰富,其常用的用法有:
示例:
figure(1)
xlabel('这是x轴')
ylabel('这是y轴')

text函数
text语法包括:
text()函数用来给图加上说明性文字。格式:text(x,y,'文字')或者text(x,y,[ '文字' ])
单个文字可以用text(x,y,'文字'),多段文字可以用text(x,y,[ '文字' ,'文字']),其中x,y都是具体位置,是具体数
\fontsize{}- 字体大小\fontweight{} - 字符粗细\fontname{}- 字体名称 \arg-指定字体风格字体修饰样式:\fontname{arg}
| ^{ } | 上标 | 'text^{text}' |
| _{ } | 下标 | 'text_{text}' |
| \bf | 粗体 | '\bf text' |
示例:
x=0:0.05*pi:2*pi;
y=sin(x);
figure(1);
plot(x,y);
text(pi,0,'\leftarrow\fontsize{20}\fontname{Bf}这是正弦');

legend(‘文字’)加图例
图例的具体属性设置可以在figure窗口工具栏-插入栏进行调整


想要详细的图例调用,可以打开属性检查器。

在这里面可以调大小改颜色等等。
(能简单在图窗调,为啥要辛苦记代码~)
matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un
一、机器人介绍 此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接
2022年10月21日星期五【数据指标】加密货币总市值:$0.95万亿BTC市值占比:38.51%恐慌贪婪指数:23极度恐慌 【今日快讯】1、【政讯】1.1.1、美联储布拉德:市场预期美联储11月会加息75个基点1.1.2、美联储哈克:将维持加息一段时间1.2、美国10年期国债收益率触及4.197%,为2008年6月以来最高1.3、法国数字转型部长:政府将专注于DeFi和Web31.4、巴西ATM机将于11月3日起支持USDT1.5、美众议院副议长将于11月初加入a16zCrypto担任政府事务主管1.6、香港数字资产托管机构FirstDigitalTrust首席执行官:香港仍是安全
慢跑者与狗问题描述一个慢跑者在平面上沿椭圆以恒定的速率𝒗=𝟏跑步,设椭圆方程为:𝒙=𝟏𝟎+𝟐𝟎𝒄𝒐𝒔(𝒕),𝒚=𝟐𝟎+𝟓𝒔𝒊𝒏(𝒕)。突然有一只狗攻击他,这只狗从原点出发,以恒定速率𝒘跑向慢跑者,狗的运动方向始终指向慢跑者。分别求出𝒘=𝟐𝟎,𝒘=𝟓时狗的运动轨迹。模型建立设时刻t慢跑者的坐标为(𝑿(𝒕),𝒀(𝒕)),狗的坐标为(𝒙(𝒕),𝒚(𝒕))。则𝑿=𝟏𝟎+𝟐𝟎𝒄𝒐𝒔(𝒕),𝒀=𝟐𝟎+𝟏𝟓𝒔𝒊𝒏(𝒕),狗从(0,0)出发,建立狗的运动轨迹的参数方程:由于狗始终对准人,因而狗的速度方向平行于狗与人位置的差向量:消去𝝀,得由题意𝑿=𝟏𝟎+𝟐𝟎𝒄𝒐𝒔𝒕,𝒀=𝟐𝟎+1𝟓𝒔𝒊𝒏(𝒕),狗从(0,0)
在正常工作环境中往往是可以使用无线网络的,此时安装一个matlab也不是什么难事;但是也难免也会遇到一些工作电脑不允许链接无线网络,此时若安装一个matlab则是一件非常痛苦的事,因为其安装包就20多个G,当时我是用手机开热点下载的,仅仅下载安装包就浪费了一个下午+一个晚上; 下面就举一个例子,针对安装过matlab和未安装过matlab的情况去介绍C++调用matlab函数的操作流程:一、封装matlab函数首先把matlab代码封装成函数的形式,下面举一个简单的函数为例;functionc=myadd(a,b)c=a+b;end二、编译matlab函数具体的编译
matlab中矩阵点乘和乘的区别MATLAB中,一、矩阵相乘:表示两个矩阵相乘。二、矩阵点乘:表示矩阵中对应位置的元素分别相乘。三、举例3.1矩阵相乘3.2矩阵点乘MATLAB中,一、矩阵相乘:表示两个矩阵相乘。前提条件:满足矩阵相乘的规则,即前矩阵的列数等于后矩阵的行数。二、矩阵点乘:表示矩阵中对应位置的元素分别相乘。前提条件:满足矩阵点乘的规则,即前后矩阵维度相同。三、举例3.1矩阵相乘Example1:A=[123;456]A=123456>>B=[1;2;3]B=123>>C=A*BC=1432这时如果用点乘就会报错Example2:>>A=[123;456;789]A=1234567
目录1.GM(1,1)模型2. 组合预测模型3. GMDH进行时间序列预测4.运行结果5Matlab代码实现1.GM(1,1)模型灰色预测是一种对具有不确定因素的系统进行预测的方法,能有效解决数据少、序列的完整性及可靠性低的问题。GM(1,1)模型是一种较为常用的灰色模型,GM(1,1)预测模型的建立实质上就是对原始数据序列作一次累加生成,使生成数据序列呈显出一定规律,然后通过建立微分方程模型,求得拟合曲线,进而对系统进行预测。2. 组合预测模型灰色模型是通过对原始数据加工处理来弱化随机性的,若数据存在较大的波动性,预测出来的结果可能会存在较大误差。ARIMA模型对于预测的模型比较理想,要求时