找回密码
 立即注册
查看: 171|回复: 0

Matlab图形与图像处理(2.46-2.53)

[复制链接]
发表于 2023-3-27 06:25 | 显示全部楼层 |阅读模式
2.46 服从高斯分布的柱状数据图及极坐标下的柱状图
Y=randn(10000,1);%%随机函数定义10000行1列的正态分布的随机向量Y
subplot(1,2,1)
histogram(Y); %%绘制正态分布的随机向量Y的柱状图
title('高斯分布柱状图')
x=-3:0.1:3;
subplot(1,2,2)
h=histogram(Y,x); %%绘制设置边界的柱状图
set(h,'FaceColor','r')%%设置柱状图h的填充颜色为红色
title('指定范围的高斯分布柱状图')
theta=Y*pi;%%定义数据向量
polarhistogram(theta);%%输入函数绘制向量在极坐标下的柱状图,并显示弧度值
title('极坐标系下的柱状图')





2.47 抽取矩阵外的第一列第二列第三列,绘制垂直误差条
Y=[5 3 8;7 4 7;16 5 4;17 6 8;19 9 4;20 16 8];
Y1=Y(:,1)'%%抽取矩阵外的第一列并转置为行向量
Y2=Y(:,2)'
Y3=Y(:,3)'

(Y1,Y2,Y3)%%输入误差棒图,绘制Y2对Y1的线图,并在每个数据点处绘制一个长度为Y3的垂直对称误差条,误差条的总长度为Y3的两倍



2.48 绘制平方函数火柴杆图
X = linspace(0,1,50);
Y = X.^2;
stem(X,Y, 'LineStyle','-.',...%%火柴杆图命令,设置线性为点划线
     'MarkerFaceColor','red',...%%标记的填充颜色为红色
     'MarkerEdgeColor','yellow')%%标记的轮廓颜色为黄色


*******************************************************
​stem(Y) 将数据序列 Y 绘制为从沿 x 轴的基线延伸的针状图。各个数据值由终止每个针状图的圆指示。
如果 Y 是向量,x 轴的刻度范围是从 1 至 length(Y)。
如果 Y 是矩阵,则 stem 将根据相同的 x 值绘制行中的所有元素,并且 x 轴的刻度范围是从 1 至 Y 中的行数。
         ​stem(X,Y) 在 X 指定的值的位置绘制数据序列 Y。X 和 Y 输入必须是大小相同的向量或矩阵。另外,X 可以是行或列向量,Y 必须是包含 length(X) 行的矩阵。
如果 X 和 Y 都是向量,则 stem 将根据 X 中的对应项绘制 Y 中的各项。
如果 X 是向量,Y 是矩阵,则 stem 将根据 X 指定的值集绘制 Y 的每列,这样 Y 的一行中的所有元素都是根据相同的值而绘制。
如果 X 和 Y 都是矩阵,则 stem 将根据 X 的对应列绘制 Y 的列。
stem(___,'filled') 填充圆。可以将此选项与前面语法中的任何输入参数组合一起使用。
​stem(___,LineSpec) 指定线型、标记符号和颜色。
​​stem(___,Name,Value) 使用一个或多个 Name,Value 对组参数修改针状图。
​stem(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
h = stem(___) 在 h 中返回由 Stem 对象构成的向量。使用 h 可在创建针状图后对其进行修改。
************************************************
使用省略号三个点(…)是将一条语句换行。

2.49 绘制余弦波叠加的阶梯图
x=(-pi:pi/20:pi)';%%绘制线性间隔值向量x
y =[0.5*cos(x),2*cos(x)];
stairs(y)%%输入阶梯图函数
text(10,2.2,'余弦波叠加的阶梯图','FontSize',16)%%在指定坐标点添加指定格式的文本,指定文本字号为16


****************************************

  •         ​stairs(Y) 绘制 Y 中元素的阶梯图。(1)​如果 Y 为向量,则 stairs 绘制一个线条。(2)如果 Y 为矩阵,则 stairs 为每个矩阵列绘制一个线条。
  •         ​stairs(X,Y) 在 Y 中由 X 指定的位置绘制元素。输入 X 和 Y 必须是相同大小的向量或矩阵。另外,X 可以是行或列向量,Y 必须是包含 length(X) 行的矩阵。
  • ​        stairs(___,LineSpec) 指定线型、标记符号和颜色。例如,':*r' 指定带星号标记的红色点线。可以将此选项与前面语法中的任何输入参数组合一起使用。
  • ​        stairs(___,Name,Value) 使用一个或多个名称-值对组参数修改阶梯图。例如,'Marker','o','MarkerSize',8 指定大小为 8 磅的圆形标记。
  • ​        stairs(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于前面的语法中的任何输入参数组合之前。
  • ​        h = stairs(___) 返回一个或多个 Stair 对象。在创建特定 Stair 对象后,使用 h 更改该对象的属性。
  • ​        [xb,yb] = stairs(___) 不创建绘图,但返回大小相等的矩阵 xb 和 yb,以使 plot(xb,yb) 绘制阶梯图。
************************************************************************************
MATLAB中的字体修改:
xlabel:命名x轴的名字
ylabel:命名y轴的名字
legend:命名变量的名字
title:命名图片的标题
***标题的字体,大小都是默认的。但也都是可以调整的,包括字体大小字体颜色字体种类
FontSize:字体大小
FontName:字体种类
FontWeight:字体是否加粗
Color:字体颜色
***
FontSize:负责调整字体的大小,后面只要是正整数就可以。(想大就大,想小就小)。
FontWeight:控制字体加粗,默认不加粗。需要加粗设置' bold'
FontName:matlab中有一个默认字体。matlab支持几种字体类型,如:黑体,楷体,宋体,简雅黑。对于数字和字母,使用新罗马字体。
xlabel('横坐标','FontName','黑体')
xlabel('x','FontName','Time New Roman')
**************************************************************
text(10,2.2):定义标题在坐标轴上的起始横纵坐标
2.50 绘制指数函数的阶梯图
x=-2:0.1:2;
y=exp(x);
stairs(x,y)%%输入阶梯图函数
hold on%%图片保持命令,在原有图像上进行继续操作
plot(x,y,'--*')
hold off%%关闭保持命令
text(-1.8,1.8,'指数波的阶梯图','FontSize',14)


2.51 绘制随机矩阵的罗盘图
M = randn(20,20);  %%创建一个正态分布的20*20的随机矩阵M
Z = eig(M);%%输入求特征值函数,求矩阵M的特征向量
h=compass(Z); %%输入罗盘图命令,绘制特征向量的罗盘图
h(1).LineStyle='-.'; %%利用点划线表示h的第1格的线型
h(1).Marker='h'; %%设置第一个箭头的标记样式为正六角星
title('罗盘图')


**********************************************************
eig函数:特征值和特征向量。

Z = eig(M):返回一个列向量,其中包含方阵M的特征值。
***********************************************************
compass函数:罗盘图

(1)compass(x,y)函数绘制一个由原点出发由(x,y)组成的向量箭头图形;
(2)compass(z)等价于compass(real(z),imag(z));
(3)compass(...,LineSpec)函数用参量LineSpec指定箭头的线型、标记符号、颜色等属性;
(4)h = compass(...)函数返回line对象的句柄给h。
************************************************************
h(1).LineStyle='-.'; %%利用点划线表示h的第1格的线型
h(1).Marker='h'; %%设置第一个箭头的标记样式为正六角星

2.52绘制魔方矩阵罗盘图的与羽毛图
M= magic(10);%%创建一个10阶的魔方矩阵M
subplot(1,2,1)
compass(M)%%输入罗盘图命令
title('罗盘图')
subplot(1,2,2)
feather(M) %%输入羽毛图命令
title('羽毛图')



***********************************************
魔方矩阵:M= magic(10);%%创建一个10阶的魔方矩阵M


****************************************************************
MATLAB中的特殊矩阵:

1.zeros函数:产生全0矩阵,即零矩阵。
2.ones函数:产生全1矩阵,即幺矩阵。
3.eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。
4.rand函数:产生(0,1)区间均匀分布的随机矩阵。
5.randn函数:产生均值为0,方差为1的标准正态分布随机矩阵。
6.魔方矩阵(方阵、magic函数)
(1)n阶魔方阵由1,2,3…,n共n2个整数组成,且每行、每列以及主、副对角线上各n个元素之和都相等。
(2)n阶魔方阵每行每列元素的和为(1+2+3+…+n2) / n= (n+n3)/2。
(3)Matlab中 magic(n) 只产生一个特定的魔方阵,实际上当n大于2时可能有多个魔方阵存在。、
7.范德蒙矩阵(方阵、vander函数)
在Matlab中,函数vander(V)生成以向量V为基础的范德蒙矩阵。
8.希尔伯特矩阵(方阵、hilb函数)
9.伴随矩阵(方阵、compan函数)
Matlab生成伴随矩阵的函数是 compan(),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂系数排在后。
10.帕斯卡矩阵(方阵、pascal函数)
*****************************************************
feather函数:绘制羽毛图(速度向量图)

(1)feather(x,y) 函数绘制由向量参量x与y构成的速度向量,沿水平轴方向,从均匀间隔点以箭头发射出来;
(2)feather(z) 函数绘制羽毛图。参量z是一个复数,则feather(z)相当于compass(real(z),imag(z));
(3)feather(...,LineSpec) 函数绘制羽毛图。参量LineSpec指定的线型、标记符号、颜色等属性画出羽毛图;
(4)H = feather(...) 函数返回羽毛图中线型对象的句柄H。
2.53 绘制箭头图
x = linspace(0,1,100); %%100个元素
x = reshape(x,10,10); %%将向量x转换为10*10的矩阵
y = exp(x.^3+x.^2+x); %%利用矩阵x定义函数表达式y
u = cos(x).*y;%%定义u
v = sin(x).*y;%%定义v
quiver (x,y,u,v)%%输入箭头图函数,在x和y指定的坐标处,将u和v指定的向量定义成箭头
title('箭头图')


************************************************************
B = reshape(A, sz);
按矢量sz定义的维度(包括行数 列数 维数)重构矩阵A来得到矩阵B
先将矩阵A先排列成一列(结果感受就是按列优先排列),再按照矢量sz定义大小的行数切割
**************************************************************
***quiver()
在科研出图中,经常需要在底图上绘制流速图、受力图、磁场方向图等,而MATLAB正好拥有一个对应的quiver函数可以使用。本文以冰流速制图为例介绍quiver函数的使用和注意事项。
***quiver()功能
语法1:quiver(x,y,u,v)
这是quiver最常用的命令形式,表示在(x,y)位置上绘制向量(u,v)。(x,y)为箭头的起始坐标,(u,v)为箭头的方向矢量,sqrt(uu+vv)为物理量的大小,arctan(v/u)为物理量的方向。
语法2:quiver(x,y,u,v,scale)
数值scale是指箭头的放大缩小比例。在默认情况下,quiver命令会自动调整箭头的大小,以保证箭头之间不重叠。例如,scale为2时,表示箭头放大2倍,以此类推。
语法3:quiver(x,y,u,v,scale,‘LineSpec’)
'LineSpec’表示绘制箭头的颜色、线型、 标志样式。例如’LineSpec’为’y’时,表示箭头显示为黄色。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-17 19:33 , Processed in 0.103353 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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