MATLAB基础篇(下)

本文为MATLAB基础篇(上)的后续。


 二、 MATLAB基本语法

7、基本绘图方法

Ⅰ、 MATLAB绘图的一般步骤

  1. 对数轴进行采样
  2. 对采样点计算相应的函数值, 得到平面(或空间)上的点的数据
  3. 运用绘图命令将数据进行图形化显示
x=-1:0.01:1;
%对数轴进行采样y=sin(1./x);
%对每一个采样点, 计算对应的函数值plot(x,y);
%将x,y表示的平面上的点用直线段连接起来

画出y=sin(1/x), x∈[-1,1]的图形,如下:

 Ⅱ、线型、点型和颜色

使用格式: plot(x,y,'绘图参数')

plot(x,y,'*b');  %点型为*,  颜色为蓝色
plot(x,y,':g');  %线型为虚线, 颜色为绿色
plot(x,y,'+-r');  %点型为+,线型为实线, 颜色为红色

                                                                     MATLAB绘图参数表

线型

说明

点型号

说明

颜色

说明

-

实线(默认)

+

加号符

r

红色

--

双划线

o

空心圆

g

绿色

:

虚线

*

星号

b

蓝色

:.

点划线

.

实心圆

c

青绿色

 

 

x

叉号符

m

洋红色

 

 

s

正方形

y

黄色

 

 

d

菱形

k

黑色

 

 

^

上三角形

w

白色

 

 

v

下三角形

 

 

 

 

>

右三角形

 

 

 

 

<

左三角形

 

 

 

 

p

五角星

 

 

 

 

h

六边形

 

 

 Ⅲ、多条曲线的绘制

有多种方法在一张图上显示多条曲线, 这里介绍两种方法

(1)用plot(x1,y1,x2,y2,…)命令

t=0:0.5:4*pi;
y=exp(-0.1*t).*sin(t);
y1=exp(-0.1*t).*sin(t+1);
plot(t,y,t,y1);

 (2)用hold on命令

在执行一次绘图命令合, 使用hold on命令保持当前画板, 使得后面绘制的图形在当前画板上.

t=0:0.5:4*pi;
y=exp(-0.1*t).*sin(t);
y1=exp(-0.1*t).*sin(t+1);
plot(t,y);
hold on
plot(t,y1);
hold off

 Ⅳ、三维曲线和曲面

(1)绘制三维曲线

格式: plot3(x,y,z)

z=0:0.1:4*pi;
x=cos(z);
y=sin(z);
plot3(x,y,z);

 (2) 绘制三维曲面

步骤:

  1. 分别对x,y轴进行采样;
  2. 生成x-y平面网格;
  3. 计算网格点对应的z值;
  4. 用三维曲面绘图命令绘图
x=-8:0.5:8;
y=-8:0.5:8;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2+Y.^2)+eps;            
Z = sin(R)./R;
mesh(X,Y,Z);

注:在上述公式中,eps是一个非常小的数,通常被称为“机器精度”(machine epsilon)。它用于避免在计算机程序中出现除以零的错误 

                                               常用绘图命令

plot

线性X-Y坐标绘图

legend

标注图例

axis

控制坐标轴比例和外观

plot3

三维曲线作图

hold on

保持当前画板

meshgrid

生成网格

hold off

释放当前画板

mesh

三维曲面作图

title

标题

surf

三维曲面作图

xlabel

X轴标注

meshc

加等高线的三维曲面作图

ylabel

Y轴标注

surfc

加等高线的三维曲面作图

textt

在图上标文字

contour

平面等高线

grid on

图上加坐标网格

contour3

三维等高线

grid off

去掉网格

subplot

子图

8、逻辑运算

MATLAB的逻辑值有真(TRUE)和假(FALSE), 可以通过逻辑表达式或直接输入得到. 输入和显示时用0表示逻辑假, 1表示逻辑真. 浮点数和逻辑值可以互相转换.

                                                    浮点数与逻辑值的相互转换

                           

                                                      关系运算及逻辑运算符

 

符号

意义

符号

意义

符号

意义

>

大于

<

小于

>=

大于或等于

<=

小于或等于

==

等于

~=

不等于

&

逻辑与

|

逻辑或

~

逻辑非

&&

逻辑与(短路)

||

逻辑或(短路)

xor

逻辑异或

A=[0 0 1 1]
B=[0 1 0 1]A&B                 与                              
A|B                 或
~A                  非
xor(A, B)         异或
G=magic(6)        魔方矩阵
rem(G,2)          G的元素整除2的余数
p=(rem(G, 3)==0)     判断元素是否是0
u=p|~p            两个逻辑数组对应元素进行运算得到:
A =0     0     1     1B =0     1     0     1ans =1×4 logical 数组0   0   0   1ans =1×4 logical 数组0   1   1   1ans =1×4 logical 数组1   1   0   0ans =1×4 logical 数组0   1   1   0G =35     1     6    26    19    243    32     7    21    23    2531     9     2    22    27    208    28    33    17    10    1530     5    34    12    14    164    36    29    13    18    11ans =1     1     0     0     1     01     0     1     1     1     11     1     0     0     1     00     0     1     1     0     10     1     0     0     0     00     0     1     1     0     1p =6×6 logical 数组0   0   1   0   0   11   0   0   1   0   00   1   0   0   1   00   0   1   0   0   11   0   0   1   0   00   1   0   0   1   0u =6×6 logical 数组1   1   1   1   1   11   1   1   1   1   11   1   1   1   1   11   1   1   1   1   11   1   1   1   1   11   1   1   1   1   1

 魔方阵是一个矩阵,其中每行、每列以及对角线上的所有元素之和都相等。请注意,魔方阵只能在方阵(即行数等于列数)中生成。在生成魔方阵时,算法会优化使得每行、每列和对角线之和都相等。这使得生成的魔方阵在数学和游戏等领域具有一些特殊的性质和用途。

A = rand(4,4)
B = A<0.5
C = A(B)
R = find(A<0.5)
得到:
A =0.7094    0.6551    0.9597    0.75130.7547    0.1626    0.3404    0.25510.2760    0.1190    0.5853    0.50600.6797    0.4984    0.2238    0.6991B =4×4 logical 数组0   0   0   00   1   1   11   1   0   00   1   1   0C =0.27600.16260.11900.49840.34040.22380.2551R =3678101214

9、流程控制语句

(1)if语句

格式一:

if (表达式)

语句组A;

end

格式二:

if (表达式1)

    语句组A;

else

    语句组B;

end

格式三:

if (表达式1)

    语句组A;

elseif (表达式2)

    语句组B;

else   

    语句组C;

end

(2) while语句

格式:

while  (表达式)

  语句组;

end

举例:求MATLAB相对精度,y不断减小,直至MATLAB分不出1+y与1的差别为止。

y=1;
while (1+y)>1y1=y;y=y/2;
end
y1 
得到:
y1 =2.2204e-16

(3) for语句

格式:

for k= 初值:增量:终值

    语句组;

end

举例:显示三角函数表

for x=0:0.1:pi/4disp([x, sin(x), cos(x), tan(x)])
end
得到:0     0     1     00.1000    0.0998    0.9950    0.10030.2000    0.1987    0.9801    0.20270.3000    0.2955    0.9553    0.30930.4000    0.3894    0.9211    0.42280.5000    0.4794    0.8776    0.54630.6000    0.5646    0.8253    0.68410.7000    0.6442    0.7648    0.8423

10、M程序及M函数

  • MATLAB的程序通常用后缀名为m的文本文件来保存, 所以 可以用任何文字编辑工具来创建和编写.  MATLAB程序可直接调用M文件并执行.
  • M文件分为两种: 一种是M程序, 为用户解决特定的问题编制的, 可以独立执行;另一种是M函数, 用来完成相对独立的子功能, 不能独立执行.  MATLAB软件的大部分功能是来自其建立的函数集.
  • 在MATLAB中创建M程序和M函数的方法是相同的. 点击菜单“File→New → M-File”, 打开文本编辑器, 程序编写完成后, 点击 按纽         即可执行.  程序的输出结果在命令窗口.
  • 通常用户建立的M程序和M函数存放在当前目录中, MATLAB可以自动搜索到.

(1) M程序

M程序特征:

由一般语句组成, 程序中的变量是全局的, 可以在MATLAB命令窗口输入文件名来执行.

举例:

%列出一个求fibonnaci数的程序, 它是一个数列, 从[1,1]开始, 由数列的最后两个元素之和生成新的元素, 依次递推f=[1,1]; 
i=1;
N=10;
while f(i)+f(i+1)<N  %循环条件检验f(i+2)=f(i+1)+f(i); %求fibonnaci数的算式i=i+1;  
end
f
得到:
f =1     1     2     3     5     8

 (2) M函数

M函数特征:

  1. 由function起头, 后面跟的函数名, 函数名必须与文件名相同.
  2. 有输入输出变量, 可以进行变量传递.
  3. 除非用global声明, 程序中的变量均为局部变量, 不保存在工作空间中.
  4. M函数不能独立运行, 必须由其它程序调用.

一般格式:function y=FunctionName(x)

举例:

%求fibonnaci数的函数
function f = fib(n)
if n <= 2f = 1;
elsef = fib(n-1) + fib(n-2);
end

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库架构

MySql数据库架构 网络连接层&#xff1a;提供与mysql服务器建立连接的支持&#xff0c;负责连接管理、授权认证、安全等。 核心服务层&#xff1a;主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和查询缓存六个部分。 存储引擎层&#xff1a;负责Mysql中数据…

React V6实现类似与vue的eventBus

功能背景 想要实现类似于vue的eventBus的功能&#xff0c;由一个组件通知其他一个或多个组件。应用场景&#xff1a;比如一个可视化大屏的界面&#xff0c;当筛选条件变化的时候&#xff0c;要同时通知到大屏中所有图表一起变化。&#xff08;当然使用store也是可以的&#xff…

【NX】NX二次开发设置对象高亮和颜色模板实现

在NX二次开发当中&#xff0c;我们经常需要高亮一个或者多个对象&#xff0c;或者设置对象的颜色方便实现&#xff0c;直接调用函数稍微显得麻烦&#xff0c;尤其是当我们需要处理的对象是容器的时候&#xff0c;于是我写了几个简单的模板实现&#xff0c;方便调试。 //author&…

docker 教程笔记,win11

1、如何执行container 当git clone一个带Dockerfile的项目时&#xff0c;先打开终端&#xff0c;跳转到该项目文件夹。 使用如下命令构建镜像image docker build -t project_name . 注&#xff1a; project_name为该项目名&#xff0c;后面必须要有空格和点。 执行完毕后&#…

mutate使用(日志过滤)

1.前言 mutate 过滤器是Logstash中的一个常用过滤器&#xff0c;用于对事件中的字段进行修改、重命名、删除和添加操作。它提供了多种操作选项&#xff0c;如替换字段值、添加新字段、删除字段、重命名字段等。mutate 过滤器可以在事件流水线的任何阶段使用&#xff0c;且不需…

vue 移动端开发vw适配方案rem适配方案 + vant框架 + unocss|tailwindcss

写在前面的话&#xff1a;看了这篇文章&#xff0c;有些东西名词啥的不懂的&#xff0c;或者有疑问的推荐百度&#xff0c;因为写的太多真的显得很啰嗦&#xff01; 1.移动端开发适配 目前移动端适配&#xff0c;在市面上主流适配方案无非就两种&#xff0c;rem方案和vw方案。…

宏晶微 音频处理芯片 MS7124

MS7124是一款高性能24bit数字立体声音频DAC&#xff0c;该DAC采用Sigma-Delta结构&#xff0c;支持标准的I2S数字信号输入&#xff0c;输出支持立体声和单声道。

蓝桥杯专题-试题版-【九宫重排】【格子刷油漆】【回文数字】【国王的烦恼】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

【多种优化算法比较】混沌引力搜索算法(CGSA)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

CentOS Linux MySQL 数据库 的安装方法

一、简单了解MySQL数据库的体系结构 &#xff08;一&#xff09;MySQL架构图 &#xff08;二&#xff09;MySQL体系结构&#xff1a;连接层、服务层、引擎层、存储层 1、连接层--主要职责&#xff1a;身份认证&#xff0c;连接管理&#xff0c;获取权限信息 &#xff08;1&am…

Basler相机一丢包就断开问题解决

问题描述&#xff1a; 两个相机&#xff0c; 一个相机aca2500-14gm连接电脑主板100M网卡没问题&#xff0c;帧率3帧&#xff0c;但是不会断。 一个相机aca2500-14gm连接USB转网口&#xff08;千兆&#xff09;&#xff0c;pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Nacos架构与原理 - 寻址机制

文章目录 前提设计MemberLookup内部实现单机寻址 StandaloneMemberLookup文件寻址 FileConfigMemberLookup地址服务器寻址 AddressServerMemberLookup 未来可扩展点 前提 Nacos 支持单机部署以及集群部署 针对单机模式&#xff0c;Nacos 只是自己和自己通信&#xff1b;对于集…