MATLAB5:数据和函数的可视化

文章目录

  • 一、实验目的
  • 二、实验内容
  • 三、仿真结果
  • 四、实践中遇到的问题及解决方法


一、实验目的

  1. 掌握基本的二维绘图中曲线图的绘制方法。
  2. 掌握三维绘图中曲面图的绘制方法。
  3. 掌握三维绘图中网线图的绘制方法。
  4. 了解三维表面图的绘制方法。
  5. 了解图形的渲染方法、剪切、光照效果以及色调搭配等内容。

二、实验内容

  1.常用的图形绘制命令

指令说明
plot基本二维曲线图形命令
stairs阶梯图;主要用于采样数据
stem二维杆图;主要用于离线数据
polar以极坐标绘制图形

  2.颜色和线型

指令颜色或线型指令颜色或线型指令颜色或线型
bg绿r
cm品红y
kw-实线
:虚线-.点划线双划线

  3.数据点形

指令数据点形指令数据点形指令数据点形
.实心黑点+十字符*星号
^向上三角<向左三角>向右三角
v向下三角d菱形h六角星
o空心圆p五角星s方块
x叉号

  4.坐标控制

指令说明
axis auto使用缺省设置
axis off取消轴背景
axis(V)人工设定坐标范围,例如:V=[x1,x2,y1,y2,z1,z2]
axis normal缺省矩形坐标系
axis equal横、纵轴等长刻度
axis square产生正方形坐标系
axis image横、纵轴等长刻度,且坐标矿紧贴数据范围
axis tight把数据范围直接设为坐标范围

  5. 分格线和坐标框

指令说明
grid分格线切换(状态翻转)
grid on/off画出/不画分格线
box坐标形式切换(状态翻转)
box on/off使当前坐标呈封闭式/开启式

注:缺省设置为不画分格线、封闭式

  6.图形标识

指令说明
title(‘s’)书写图名
xlabel(‘s’)横坐标轴名
ylabel(‘s’)纵坐标轴名
legend(‘s1’,’s2’,…)线型、颜色、数据点的图例
text(x,y,’s’)在图形(x,y)坐标处标注释

  7.多次叠绘

指令说明
hold on保持图形和坐标轴,准备绘制新曲线
hold off取消叠绘

  8. 双纵坐标图

指令说明
plotyy(X1,Y1,X2,Y2)以左右不同纵轴绘制两条曲线

  9.多子图

指令说明
subplot(m,n,k)选择m×n幅子图中的第k幅为当前子图

  10.获取二维图形数据的指令(唯一能从图上获取数据的指令)

指令说明
[x,y]=ginput(n)用鼠标从二维图形上获取n个点的数据坐标(x,y);该指令仅适用于二维图形;指令中的x,y存放所取点的坐标;n必须为正整数,它表示用户希望通过鼠标从图上获得的数据点个数。

  11.三维图形指令

指令说明
plot3(X,Y,Z,’s’)表现单参数的三维曲线
mesh(X,Y,Z,C)表现网线图/曲面图,mesh不上色
surf(X,Y,Z,C)表现网线图/曲面图,surf上色

  12.三维图形的修饰

指令说明
view([az,el])视点控制,通过方位角az、俯视角el设置视点
colormap(hot)设置当前图形窗的着色色图
alpha(n)对图形进行透明度处理
shading interp对图形进行浓淡处理

三、仿真结果

1.一条曲线可由下列方程式表示:
x=sin(-t)+t;y=1-cos(-t)
当t由0变化到4*pi时,画出此曲线在XY平面的轨迹。
答:

>> t=0:pi/100:4*pi;
x=sin(-t)+t;
y=1-cos(-t); 
plot(x,y),
title('第一题')

在这里插入图片描述
2.Chebysheve多项式的定义如下:y=cos(m/cos(x))
其中x的值介于[-1,1],当m的值由2变化到5时,我们可得到4条曲线,请使用hold on/off指令将这4条曲线画在同一张图上面,分别用细实线,虚点线,点划线和虚划线表示,加图名,并且使用legend指令来标明每一条曲线。思考:如果四条线的颜色要求都用黑色怎么处理?
答:

>> x=-1:0.01:1;
y=cos(2./cos(x));
plot(x,y,'k-'),hold on,
y1=cos(3./cos(x));
plot(x,y1,'k:'),hold on,
y2=cos(4./cos(x));
plot(x,y2,'k-.'),hold on,
y3=cos(5./cos(x));
plot(x,y3,'k--'),title('第二题'),
legend('y=cos(2/cos(x))','y1=cos(3/cos(x))','y2=cos(4/cos(x))','y3=cos(5/cos(x))')
思考:四条线的颜色要求用黑色,已在上述中表示,用’k’表示黑色。

在这里插入图片描述

3.在多子图模式下绘制y=sin(t)sin(9t)及其包络线,第三幅子图的位置自己指定。
答:

>> t=(pi*(0:1000)/1000)';
y1=sin(t);
y2=sin(9*t);
y12=sin(t).*sin(9*t);
subplot(2,2,1),plot(t,[y1,-y1]),
axis([0,pi,-1,1]),
subplot(2,2,2),plot(t,y12),
axis([0,pi,-1,1]),
subplot('position',[0.2,0.05,0.6,0.45]),
plot(t,y12,'b-',t,[y1,-y1],'r:'),axis([0,pi,-1,1]),title('第三题')

在这里插入图片描述
4.绘制三维曲线x=sint,y=cost,z=sintcost,t取值[0,2pi]
答:

>> t=0:pi/200:2*pi;
x=sin(t);
y=cos(t);
z=sin(t).*cos(t);
plot3(x,y,z),
view([27,30]),
title('第四题')

在这里插入图片描述
5.x取值[-2,2],y取值[-2,2],步长自拟,产生三维网络X,Y,并在一个图形窗口绘制z=xexp^(-xx-y*y)的三维网络图,三维曲面图,并给图形加上x轴标签,y轴标签。
答:

>> x=-2:0.01:2;
y=-2:0.01:2;
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.*X-Y.*Y);
subplot(1,2,1),plot3(X,Y,Z),
view([27,30]),shading interp,
xlabel('X'),ylabel('Y'),zlabel('Z'),
title('第五题')subplot(1,2,2),surf(X,Y,Z),
colormap(hot),view([27,30]),shading interp
xlabel('X'),ylabel('Y'),zlabel('Z'),
title('第五题')

在这里插入图片描述

四、实践中遇到的问题及解决方法

  1.问题:画三维图形时,分不清三维网络图和三维曲面图的区别
  解决方法:三维网络图和三维曲面图是不同的概念,其中用plot3(X,Y,Z,’s’)画三维网络图;用mesh(X,Y,Z,C)或surf(X,Y,Z,C)画三维网线图/曲面图,mesh不上色,surf上色
  2.问题:最开始绘图时分不清是点还是线。例如:plot(x,y),plot(x,y,‘r–’),plot(x,y,‘rs-.’)
  解决方法:用MATLAB多次绘制,可以找到规律,其中plot(x,y)默认的是蓝色的实线,plot(x,y,‘r–’)对应的是红色的双划线,plot(x,y,‘rs-.’)对应的既有红色的方块点形,又有红色的点画线。
  3.问题:不会使用ginput指令
  解决方法:它的应用指令是[x,y]=ginput(n),需要从图上获取数据,其中n必须为正整数,我们可以通过鼠标从图上获得的数据点个数。指令中的x,y存放所取点的坐标。
  4.问题:画完一幅图后,想在这幅图上接着构绘曲线,不知道怎么办?
  解决方法:使用指令hold on
  5.问题:图名标注时,有特殊字符不知道如何书写?例如:ρ=1-cosθ
  解决方法:这里不应该用软键盘书写,应该常采用特殊字符对应的字符串。该题可以写成:\rho=1-cos\theta。
  6.问题:学习绘图时,杆图,梯形曲线图依旧用plot画,不知道咋弄?
  解决办法:杆图对应的是stem,梯形曲线图对应的是stairs
  7.问题:绘制三维图形时,MATLAB显示出来的图形经常重叠,看不到它的总体轮廓
  解决办法:加一个view([az,el]),进行视点控制,通过方位角az、俯视角el设置视点,可以从合适的角度观察它的轮廓。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/545046.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java框架】Mybatis教程(一)——环境搭建及基本CRUD操作

目录 持久化与ORMORM&#xff08;Object Relational Mapping&#xff09;ORM解决方案包含下面四个部分 MyBatis简介特点MyBatis框架优缺点优点缺点 搭建MyBatis开发环境步骤1. 创建Maven工程&#xff0c;导入MyBatis依赖的组件2. 编写MyBatis核心配置文件(mybatis-config.xml)示…

【C 数据结构】静态链表

文章目录 【 1. 基本原理 】1.1 静态链表中的节点1.2 备用链表 【 2. 静态链表的创建 】2.1 实例1 - 创建静态链表&#xff0c;指定值2.2 实例2 - 创建静态链表&#xff0c;默认值 【 3. 静态链表 添加元素 】【 4. 静态链表 删除元素 】【 5. 静态链表 查找元素 】【 6. 静态链…

腾讯EdgeOne产品测评体验—基于EO新特性与传统CDN的对比以凸显EO绝对优势【以导航站为例】

精益求精&#xff0c;卓越非凡。 ——《论语集注》 EdgeOne 作为腾讯云下一代的 CDN &#xff0c;提供域名解析、动静态智能加速、TCP/UDP 四层加速、DDoS/CC/Web/Bot 防护、边缘函数计算等一体化服务&#xff0c;也支持用户按业务需求&#xff0c;配置自定义复杂访问控制规…

Qt配置外部库(Windows平台)

这里以C的外部库nlopt为例子来示范&#xff0c;右键工程选择添加库&#xff0c;然后选择库文件的目录&#xff08;dll.a&#xff09;&#xff0c;会自动设置好包含路径&#xff08;一般是include的目录&#xff09;&#xff0c;添加库&#xff08;最下面一行&#xff09; &…

【Java】maven传递依赖冲突解决

传递依赖的概念&#xff1a; 传递依赖:&#xff1a; A.jar 依赖 B.jar, B.jar 依赖 C.jar, 这个时候我们就说B是A的直接依赖, C是A传递依赖; 传递依赖可能会产生冲突: 联系着上面, 新导入一个jar包D.jar, D依赖C.jar, 但是B依赖的1.1版本, 而D依赖的是1.2版本, 这时候C这个j…

ROS2从入门到精通1-3:详解ROS2动作通信机制与自定义动作

目录 0 专栏介绍1 动作通信模型2 动作模型实现(C)3 动作模型实现(Python)4 自定义动作 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布式原理&#xff0c;并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。 &#x1f680;详情&a…

设计模式——观察者模式17

观察者模式指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式。 中介者模式是N对N的双向关系。观察者模式是1对N的单向关系。 设计模式&#xff0c;一定要敲代码…

【Linux网络编程】UDP协议

UDP协议 1.再谈端口号端口号划分认识知名端口号(Well-Know Port Number)两个问题netstatpidof 2.UDP协议2.1UDP的特点2.2面向数据报2.3UDP的缓冲区2.4UDP使用注意事项2.5基于UDP的应用层协议 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.再谈端口号 端口…

如何选择适用于Mac的文件恢复软件?适用于 Mac 的最佳数据恢复软件清单

有人会说&#xff0c;我们的数字生活正变得几乎和我们的物理生活一样重要。我们在线工作&#xff0c;将记忆保存在数码照片库中&#xff0c;在信使中交流&#xff0c;并保留各种文档的数字扫描。 每个人都知道备份是必不可少的。建议每天至少同步一个数字备份&#xff08;例如…

Spring Boot 学习(3)——Spring Initializr 创建项目问题解决

产生问题的原因&#xff0c;各种的版本都较老&#xff0c;所以导致出现问题。目前暂未打到合适的教程&#xff0c;按老教程学起来先。 小白瞎学&#xff0c;大神勿喷&#xff01; 再次强调环境&#xff1a;maven 3.3.9、jdk 1.8、idea 2017、Spring 4.3.13、Spring Boot 1.5.…

C/C++基础----指针

指针的定义 在c/c中&#xff0c;有一个特殊的变量指向我们电脑中某个内存地址&#xff0c;进而可以让我们操作这段内存&#xff0c;指的就是指针类型 语法&#xff1a; int a 10; int* p &a;&符号是取出某个变量的内存地址 把这个内存地址赋值给一个变量p&#xff…

数据适配器对象(DataAdapter)

一、DataAdapter对象概述 1、 DataAdapter是一个特殊的类&#xff0c;其作用是数据源与DataSet对象之间沟通的桥梁。 2、 DataAdapter提供了双向的数据传输机制 &#xff08;1&#xff09; 在数据源上执行Select语句&#xff0c;把查询结果集传送到DataSet对象的…

基于Spring Boot的入职匹配推荐系统设计与实现

基于Spring Boot的入职匹配推荐系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 管理员登录界面&#xff0c;登录成功后进入到系统操…

STC89C52学习笔记(九)

STC89C52学习笔记&#xff08;九&#xff09; 综述&#xff1a;本文主要介绍了蜂鸣器、蜂鸣器如何使用以及如何利用蜂鸣器播放不同频率声音。 一、蜂鸣器 1.定义和作用 电信号→声音信号&#xff0c;常用来产生按键音和报警音。 2.分类 有源&#xff1a;自带振荡器&#…

设计模式面试题

概述 设计模式分类 创建型模式 用于描述“怎样创建对象”&#xff0c;主要特点是“将对象的创建与使用分离”。使用者不需要官族对象创建的细节。结构型模式 用于描述如何将类或对象按照某种布局组成更大的结构。行为型模式 用于描述类或对象之间怎样相互协作共同完成单个对象…

面试经典150题——二叉树的最大深度

1. 题目描述 ​ 2. 题目分析与解析 这个题目有过一定基础的都应该知道&#xff0c;采用递归解决问题&#xff0c;因为要求一个二叉树的深度&#xff08;也就是高度&#xff09;&#xff0c;其实上就是根节点的左子树和右子树中高度最高的那个。因此这个问题就可以拆解为&…

微服务之OpenFeign服务接口调用

一、概述 1.1简介 OpenFeign客户端是一个web声明式http远程调用工具&#xff0c;直接可以根据服务名称去注册中心拿到指定的服务IP集合&#xff0c;提供了接口和注解方式进行调用&#xff0c;内嵌集成了Ribbon本地负载均衡器。 Feign是一个声明性web服务客户端。它使编写web服…

BackTrader 中文文档(二十三)

原文&#xff1a;www.backtrader.com/ 基准测试 原文&#xff1a;www.backtrader.com/blog/posts/2016-07-22-benchmarking/benchmarking/ backtrader包括两种不同类型的对象&#xff0c;可以帮助跟踪&#xff1a; 观察者 分析器 问题 #89是关于添加针对资产的基准测试。这是…

[阅读笔记12][LLaVA-1.5]Improved Baselines with Visual Instruction Tuning

1.5版本是llava作者在23年10月提交的。 作者对原始的llava进行了四个很小的改进&#xff0c;之后就刷了11个数据集的sota。而且可以看到llava用于训练的数据量很小&#xff0c;与instructBLIP和通义千问比少多了。 然后这里就是llava1.5进行的四个小改进。 第一点是prompt明确短…

【Excel如何在表格中筛选重复的值之条件格式】

在使用excel进行统计时经常会遇到&#xff0c;数据统计出现重复的现象&#xff0c;为了确保数据的唯一性&#xff0c;可以用到条件格式筛选出重复值&#xff0c;以确保数据的正确性。 筛选重复值&#xff1a; 选中要筛选的范围&#xff0c;行或列或整个表选中【开始】-【条件…