MATLABR2018自学一本通笔记

下边的笔记只大概记录了使用MATLAB画图的部分。
去年做项目的时候本来说想用MATLAB的App designer的,结果后来项目无疾而终了,MATLAB也没有深入的学习下去。
最近发现还是有不少人搜索这本书,这里直接把之前收集的MATLAB书籍的pdf版放下吧。ps:全带目录且高清!!(大家加油!)个人觉得自学一本通写的还是蛮通俗易懂的。

自取:
链接:https://pan.baidu.com/s/1AhHjT04KkpyOWtkSTW7t0A
提取码:hgg0

一、MATLAB基础知识

1、数据类型

数值类型

1、在未加说明与特殊定义时,MATLAB 对所有数值按照双精度浮点数类型(double,8字节)进行存储和操作。
2、双精度浮点数参与运算时,返回值的类型依赖于参与运算的其他数据类型。
3、MATLAB 中使用 Inf 和-Inf 分别代表正无穷量和负无穷量,NaN 表示非数值量。正负无穷量的产生一般是由于运算溢出,产生了超出双精度浮点数数值范围的结果,非数值量则是由于 0/0 或 Inf/Inf 类型的非正常运算而产生的,这两个 NaN 彼此是不相等的。

逻辑类型

作为所有关系和逻辑表达式的输入,MATLAB 把任何非零数值当作真,把零当作假。
所有关系和逻辑表达式的输出:对于真,输出为 1;对于假,输出为 0。
逻辑类型数据进行运算时需要用到关系操作符和逻辑运算符。

字符和字符串

1、一个字符串是存储在一个行向量中的文本,这个行向量中的每一个元素代表一个字符。实际上,元素中存放的是字符的内部代码,即 ASCII 码。
字符串一般是 ASCII 值的数值数组,它作为字符串表达式进行显示。

字符串数组的索引示例

String ='Every good boy does fun.';
U =String(7:10)
U =
		good
U =String(10:-1:7)

U =
		doog

上例中字符串像数组一样进行编址。这里元素 7~10 包含单词 good。

2、一个字符串是由单引号括起来的简单文本。

3、字符串的连接可以直接将字符串数组连接来实现。

例 2-10,字符串的连接。
在命令行窗口中输入:

U ='Hello,';
V =' world!';
W = [U V]
输出结果:
W =
Hello, world!

函数句柄

在 MATLAB 平台中,对函数的调用方法分为直接调用法和间接调用法。

l
直接调用函数
被调用的函数通常被称为子函数。但是子函数只能被与其 M 文件同名的主函数或在 M 文件中的其他函数所调用,同时在一个文件中只能有一个主函数。
l
而使用函数句柄对函数进行调用则避免了上述问题。函数句柄实际上提供了一种间接调用函数的方法。创建函数句柄需要用到操作符@。对 MATLAB 库函数中提供的各种 M 文件中的函数和使用者自主编写的程序中的内部函数,都可以创建函数句柄,从而可以通过函数句柄来实现对这些函数的间接调用。

创建函数句柄的一般句法格式为:

Function_Handle = @Function_Filename;

其中,

Function_Filename 是函数所对应的 M 文件的名称或 MATLAB 内部函数的名称。

@是句柄创建操作符。

Function_Handle 变量保存了这一函数句柄,并在后续的运算中作为数据流进行传递。
例如,F_Handle = @cos 就创建了 MATLAB 内部函数 cos 的句柄,并将其保存在 F_Handle
变量中,后续的运算过程中就可以通过 F_Handle(x)来实现 cos(x)的功能。

对于那些没有输入参数的函数,在使用句柄调用时,在句柄变量之后的圆括号中不填写变量名即可,即 F_Handle()。

二、数组与矩阵

三、MATLAB编程基础

四、数据可视化

1、图形绘制

在 MATLAB 中是无法画出真正的连续函数的,因此在实现连续函数的可视化时,首先必须将连续函数用在一组离散自变量上计算函数结果,然后将自变量数组和结果数组在图形中表示出来。

当然,这些离散的点还是不能表现函数的连续性的。为了更形象地表现函数的规律及其连续变化,通常采用以下两种方法:

(1)对离散区间进行更细的划分,逐步趋近函数的连续变化特性,直到达到视觉上的连续效果。

(2)把每两个离散点用直线连接,以每两个离散点之间的直线来近似表示两点间的函数特性。

图形绘制的基本步骤

(1)数据准备。主要工作是产生自变量采样向量,计算相应的函数值向量。
(2)选定图形窗口及子图位置。在默认情况下,MATLAB 系统绘制的图形为 figure.1、
figure.2……
(3)调用绘图函数绘制图形,例如 plot 函数。
(4)设置坐标轴的范围、刻度及坐标网格。
(5)利用对象属性值或者图形窗口工具栏设置线型、标记类型及其大小等。
(6)添加图形注释,例如图名、坐标名称、图例、文字说明等。
(7)图形的导出与打印。

2、二维图形绘制

MATLAB 基本的二维图形包括线型(Line Plots)、散点型(Scatter Plots)、条型(Bar Plots)、极坐标型(Polar Plots)及矢量图型(Vector Fields)等。

plot指令

该命令可以带有不同数目的参数。最简单的形式就是将数据传递给 plot,但是线条的类型和颜色可以通过使用字符串来指定,这里用 str表示。线条的默认类型是实线型。

基本规范

(1)plot 指令使用规范一:plot(x,y)
语句说明:以 x 为横坐标,y 为纵坐标,按照坐标(xj,yj)的有序排列绘制曲线。
(2)plot 指令使用规范二:plot(y)
语句说明:其中 y 为一维实数数组,以 1:n 为横坐标,yj 为纵坐标,绘制曲线(n 为 y的长度)。
(3)plot 指令使用规范三:plot(x,y,str)。
语句说明:用字符串 str 指定的颜色和线型对 y 绘制 x 的图形。
(4)plot 指令使用规范四:plot(x1,y1,str1, x2,y2,str2,…)。
语句说明:用字符串 str1 指定的颜色和线型对 y1 绘制 x1 的图形,用字符串 str2 指定的颜色和线型对 y2 绘制 x2 的图形……每组参数值可以采用上述除复数值以外的任何一种形式。str1,str2…可以省略,此时,MATLAB 自动为每条曲线选择颜色和线型。
(5)plot(z)。
语句说明:其中 z 为一维复数数组,以横轴为实轴,纵轴为虚轴,在复平面上绘制(real(zj),imag(zj))的有序集合的图形。
(6)plot(A)。
语句说明:绘制矩阵 A 的列对它的下标的图形。对于 m×n 的矩阵 A,有 n 个含有 m 个元素的数对,或是 n 条有 m 个点的曲线,且这 n 条曲线均采用颜色监视器上不同的颜色绘制而成。
(7)plot(x,A)。
语句说明:绘制矩阵 A 对向量 x 的图形。对 m×n 的矩阵 A 和长度为 m 的向量 x,绘制矩阵 A 的列对向量 x 的图形;如果 x 的长度为 n,则绘制矩阵 A 的行对向量 x 的图形。向量x 可以是行向量,也可以是列向量。
(8)plot(A,x)。
语句说明:对矩阵 A 绘制向量 x 的图形。对于一个 m×n 的矩阵 A 和一个长度为 m 的向量 x,对矩阵 A 的列绘制向量 x 的图形;如果 x 的长度为 n,则对矩阵 A 的行绘制向量 x的图形。向量 x 可以是行向量,也可以是列向量。
(9)plot(A,B)。
语句说明:对矩阵 A 的行绘制矩阵 B 的列的图形。如果 A 和 B 都是 m×n 的矩阵,则将绘制 n 条由 m 个有序对连成的曲线。

注意
1、输入参数为向量时,利用函数 plot 绘制多条曲线。

eg1

clear all					%清空工作区变量
x=-pi:pi/10:pi;
y=[sin(x);sin(x+3);sin(x+5)];  %此处为向量
z=[cos(x);cos(x+3);cos(x+5)];
figure;  					%先绘制一个空图框
plot(x,y,'r:*',x,z,'g-.v'); %绘制多条曲线

在这里插入图片描述
eg2

clear all
t= (0:pi/100:pi);
y1=sin(t)*[1,-1];	 %此处为向量,plot之后会绘出两条线
y2=sin(t).*sin(9*t); 
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:',t,y2,'b',t3,y3,'bo') 
axis([0,pi,-1,1])  %axis函数控制x取值范围为 [0,pi];y取值范围为[-1,1]

在这里插入图片描述

figure指令

https://www.mathworks.com/help/releases/R2019b/matlab/ref/figure.html


语法
figure
figure(Name,Value)
f = figure(___)
figure(f)
figure(n)

说明
figure 使用默认属性值创建一个新的图窗窗口。生成的图窗为当前图窗。

figure(Name,Value) 使用一个或多个名称-值对组参数修改图窗的属性。例如,figure('Color','white') 将背景色设置为白色。

f = figure(___) 返回 Figure 对象。可使用 f 在创建图窗后查询或修改其属性。

figure(f) 将 f 指定的图窗作为当前图窗,并将其显示在其他所有图窗的上面。

figure(n) 查找 Number 属性等于 n 的图窗,并将其作为当前图窗。如果不存在具有该属性值的图窗,MATLAB® 将创建一个新图窗并将其 Number 属性设置为 n。

xlim、ylim指令和axis指令

xlim和ylim指令主要用于控制绘图之后图的坐标轴范围。

绘制一个线条,并将 y 坐标轴范围设置为从 -22。

x = linspace(0,10);
y = sin(x);
plot(x,y)
ylim([-2 2])

axis用于控制绘图后整个图属性的各种设置(坐标轴范围和纵横比等),里边也包括了x、y轴的范围值等属性值设置。

axis
设置坐标轴范围和纵横比

语法
axis(limits)
axis style
axis mode
axis ydirection
axis visibility
lim = axis
[m,v,d] = axis('state')
___ = axis(ax,___)


说明

axis(limits) 指定当前坐标区的范围。以包含 4 个、6 个或 8 个元素的向量形式指定范围。

axis style 使用预定义样式设置轴范围和尺度。例如,将样式指定为 equal 以便沿着每个坐标轴使用相等的数据单位长度。

axis mode 设置 MATLAB® 是否自动选择范围。将模式指定为 manual、auto 或半自动选项之一,例如 'auto x'。

axis ydirection,其中 ydirection 为 ij,即将原点放在坐标区的左上角。y 值按从上到下的顺序逐渐增加。ydirection 的默认值为 xy,即将原点放在左下角。y 值按从下到上的顺序逐渐增加。

axis visibility,其中 visibility 为 off,即关闭坐标区背景的显示。而坐标区中的绘图仍会显示。visibility 的默认值为 on,即显示坐标区背景。

lim = axis 返回当前坐标区的 x 轴和 y 坐标轴范围。对于三维坐标区,还会返回 z 坐标轴范围。对于极坐标区,它返回 theta 轴和 r 坐标轴范围。

[m,v,d] = axis('state') 返回坐标轴范围选择、坐标区可见性和 y 轴方向的当前设置。在以后的版本中将会删除该语法。请改用坐标区的 XLimModeYLimModeZLimModeVisibleYDir 属性来获取这些值。

___ = axis(ax,___) 使用 ax 指定的坐标区或极坐标区,而不是使用当前坐标区。指定 ax 作为上述任何语法的第一个输入参数。将字符向量类型的输入参数用单引号引起来,例如 axis(ax,'equal')

3、三维图形绘制

五、句柄图形对象

句柄图形对象创建函数

在这里插入图片描述

daspect

控制沿每个轴的数据单位长度
aspect(ratio) 设置当前坐标区的数据纵横比。数据纵横比是沿 x 轴、y 轴和 z 轴的数据单位的相对长度。指定 ratio 为一个由正值组成的三元素向量,这些正值表示沿每个轴的数据单位的相对长度。例如,[1 2 3] 表示沿 x 轴从 0 到 1 的长度等于沿 y 轴从 0 到 2 的长度和沿 z 轴 0 到 3 的长度。若要在所有方向上采用相同的数据单位长度,请使用 [1 1 1]。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值