MATLAB学习笔记(1)MATLAB概述与基本知识


本文为学习笔记,侧重于MATLAB中的函数,加油!!!
记录一些经典函数的简单用法,函数的复杂用法遇到之后单独记录


MATLAB能做什么
1.MATLAB 包含了大量函数,可以显示二维三维函数
2.进行函数分析,例如寻找函数零点或最小值
3.求解线性方程组与特征值
4.曲线拟合与插值
5.统计,例如求平均值,绘制直方图等
6.傅里叶变换和信号分析
7.求解常微分方程、偏微分方程
8.自己编程!!!


MATLAB 基本知识
MATLAB 中数据的基本格式是矩阵
二维矩阵:
(1)矩阵的元素,通常是实数,但也可以是复数。
(2)当矩阵仅由一行组成时,就是一个行向量。如果矩阵仅有一列,就是一个列向量。向量是矩阵的特例。向量中元素的数量是向量的长度。
(3)如果矩阵的维数是 1×1,它是一个标量,即是一个数。
(4)二维矩阵的分配可以有多种方法实现。
【1】最简单的方法是由方括号 [ ] 包围逐行给定元素。如果定义一个标量,则方括号就不需要了。
【2】相同行中的元素是由一行或多个空格或一个逗号分隔,列由分号或回车键分隔。
(4)没有结尾分号的每个命令在屏幕上显示出其结果。若结尾带分号,就执行计算,但计算结果并不显示。
(5)一个矩阵或一个向量的指定元素是由指定它的索引来决定。如果这个变量是一个向量,就只允许有一个索引

多维矩阵:
(1)三维矩阵和其他数据结构在函数自变量中依次使用行、列和页维数次序。
(2)对于多维矩阵有两个索引原理,最自然的就是矩阵索引,它给出了每个元素在每一维中的一个位置。另一个索引原理是线性索引方法。一些命令把整个矩阵说明为一个长列元素,

元素索引
MATLAB学习笔记(1)MATLAB概述与基本知识_第1张图片
线性索引
MATLAB学习笔记(1)MATLAB概述与基本知识_第2张图片
矩阵尺寸函数:
A:m×n×…×p 的矩阵 x:向量(m×1 or 1×n)
size()

size(A) % 给出包含 A 的维数的一个行向量。在这个返回向量中的第一个元素是行数,随后是列数、页数等。
[m, n,, p] = size(A) % 给出A的维数、m行数和n列数,即两个标量。
size(A, dim) % 给出A的行(1)列(2)数。
size(x) % 给出向量 x 的大小或长度的一个行向量。如果x是一个列向量,则第1个元素是m,第2个元素是1。如果 x是一个行向量,则第1个元素是1,第2个元素是n。

length()

length(x) % 给出一个向量的长度,即如果 x 是一个行向量,那么这个向量的长度就是 n;如果 x 是一个列向量,那么这个向量的长度就是m。
length(A) % 给出m,n,⋯,p的最大数。
ndims(A) % 返回多维矩阵 A 的维数。这个函数等价于 length(size(A))

变量函数:
(1)在 MATLAB 中,变量名可以有19个字符。字母A~Z、a~z、数字和下划线 ‘_’ 可以作为变量名,但第一个字符必须是一个字母。
(2)MATLAB 是区分大小字母的,如矩阵 a 和 A 是不一样的。MATLAB 命令通常是用小写字母书写。
(3)MATLAB 有许多不同的数据类型。对于每一种数据类型,有一个名字相同的、可以把变量转换到那种类型的函数。
(4)MATLAB 允许在同一命令行上定义多个变量,也可以在按回车键之前通过输入三个点“⋯ ⋯”以便在下一行继续输入。

double() % 是一个双精度浮点数,每个存储的双精度数用64位。
char() % 用于存储字符,每个存储的字符用16位。
sparse() % 用于存储稀疏矩阵,由一个sparse使用的内存是4+(非零元素数×16)unit8() % 是一个无符号的8位整型数。数学函数并不对使用到的这种数据类型进行定义,如存储图像。

逻辑函数:
在MATLAB中,有许多功能可以帮助找出一个变量是否是一个特殊类型。

iscell(x) % 如果x是一个细胞矩阵,返回1;否则为0isfield(x) % 如果x在一个结构中是一个域,返回1;否则为0isfinite(x) % 返回一个与x相同大小的向量,这个x包含有限元的位置为1,其他位置为0islogical(x) % 如果x是一个逻辑向量,返回1;否则为0isnumeric(x) % 如果x是一个数值向量,返回1;否则为0isstr(x) % 如果x是一个字符串,返回1;否则为0isstruct(x) % 如果x是一个结构,返回1;否则为0isobject(x) % 如果x是一个对象,返回1;否则为0logical(x) % 返回一个可以使用的逻辑向量,例如逻辑索引或逻辑测试。

预定义变量:

ans % 分配最新计算表达式的值,这个表达式并没有给定一个名字。
eps % 返回机器精度。pes 数在一些命令中用作偏差。用户可以设定一个新的 eps 值,但要注意这个 eps 值不能由命令 clear 恢复。
realmax % 返回计算机能处理的最大浮点数。
realmin % 返回计算机能处理的最小的非零浮点数。
pi % 返回π,即3.141592653589793,如果e p s足够小,那么用16位十进制数来表示其精度。
inf % 定义为 1/0 。当出现被零除时,MATLAB就返回inf,并不中断执行而继续计算。
NaN % 定义为“Not a Number”,这个非数值是%类型,或是 inf/inf。
i j % 定义为虚数单位。可以为i和j分配其他值,它们将不再是预定义常数。可以由clear命令恢复。
nargin % 给出在一个函数调用中输入自变量的个数。
nargout % 给出在一个函数调用中输出自变量的个数。

变量列表:
如果不被用户删除或重命名,每个被定义的变量将在整个过程中保留。要删除变量,系统会劝告如要处理大矩阵可用命令clear。

who % 列出已定义的变量。
who global % 与who相同,但仅列出全局变量。
who a* % 给出所有以a开头的变量的一个列表。
whos % 给出比命令who更详细的列表,如显示矩阵的维数。
whos global % 与whos相同,但仅列出全局变量
exist(namestr) % 根据在字符串nameste中的变量的定义,返回不同的值.变量名应在引号‘’之间给出。
inem % 返回一个带字符串的细胞向量,这个字符串包含目前在内存中的函数、M文件。如果给出两个输出参数,则第二个包含了一个目前在内存中的MEX文件的列表。
workspace % 对由whos得到的信息给出一个图形界面。命令clear被集成在这个环境中。由help workspace给出的信息,也在UNIX下工作。

删除变量和合并:

clear % 删除所有变量并恢复除eps外的所有预定义变量。
clear name % 仅删除变量name。
clear name1 name2 ... % 删除多个变量
clear a* % 删除所有a开头的变量。
pack % 重组和压缩已分配的内存碎块。当MATLAB的内存满后,可以使用命令pack而不是清除任何变量来得到更多的空间。
pack filename % 用文件filename作临时文件,重组和压缩已分配内存。

MATLAB 中的命令实际上可以看做函数,把字符串看作自变量,这就意味着有两种描述,如 clear name 与 clear(‘name’) 结果相同

算术表达和数学函数:
(1)惯例书写:例如 3.14
(2)科学计数法:1.23E-6(1.23×10(-6))
(3)^ * /(正常除) \ + -
(4)斜线号“靠着”的表达式或数字是分母。如,对于数量右除2/5得0. 4与左除5\2是相同的。

abs(x) % 求x的绝对值
sign(x) % 求x的符号,如果是正的得1;负的得-1;零得0sart(x) % 求x的平方根
pow2(x, f) % 求x乘以2的f次
exp(x) % 求x的指数函数
log(x) % 求x的自然对数
log10(x) % 求x以1 0为底的对数
log2(x) % 求x以2为底的对数
sin(x) % 求正弦x,x为弧度。
cos(x) % 求余弦x,x为弧度。
tan(x) % 求正切x,x为弧度。
cot(x) % 求余切x,即 1/(tanx),x为弧度。
asin(x) % 求反正弦
acos(x) % 求反余弦
atan(x) % 求反正切
sec(x) % 求正割x
csc(x) % 求余割x

取整命令和相关命令:

round(x) % 求最接近x的整数。如果x是一个向量,则适用于所有元素。
fix(x) %0方向最接近x的整数。即负x向上四舍五入,正x向下四舍五入。
floor(x) % 求小于或等于x的最接近的整数。
ceil(x) % 求大于或等于x的最接近的整数。
rem(x, y) % 求整除x/y的余数。
gcd(x, y) % 求整数x和y的最大公因子。
[g, c, d] = gcd(x,y) % 求g,c,d,满足 g = xc + yd。
lcm(x, y) % 求正整数x和y的最小公倍数,也能用于决定最小公因子。
rat(x) % 求x的连续的分数表达式。
rat(x, tol) % 求带相对误差tol的x的连续的分数表达式。

有关复数的函数:

real(z) % 求z的实部。
imag(z) % 求z的虚部。
abs(z) % 求z的绝对值
conj(x) % 求z的复数共扼
angle(z) % 求z的相角
cplxpair(v) % 给出一个v中各元素按实部递增排序,并使其复数组合成复数共扼对的一个向量。在一个共扼对中,负虚部在前,实元素排在向量的后部。如果v的一个元素在v中没有它自己的复数共扼,则显示一个错误信息。

坐标转换

[theta, r] = cart2pol(x, y) % 将笛卡尔坐标转换为极坐标,极坐标theta和r是由卡笛尔x和y得到。
[x,y] = pol2cart(theta, r) % 将极坐标转换为笛卡尔坐标,笛卡尔坐标x和y是从极坐标theta和r得到。
[alpha, theta, r] = cart2sph(x, y, z) % 将卡笛尔坐标转换为球坐标,角alpha、theta和长度r是从笛卡尔坐标x、y和z得到。
[x, y, z] = sph2cart(alpha, theta, r) % 将球坐标转换为笛卡尔坐标x、y和z。

计算浮点运算次数和时间管理:
当相互比较不同算法时,计算一个会话期或一个部分会话期中的算术运算的次数是十分有用的。
MATLAB能够告诉你日期和时间,并且给出计算机的有关信息。与命令 flops一起使用, 这些命令可用于分析一个算法的有效性。

flops % 返回完成浮点运算的近似次数。最新的计数器值是 0,这是MATLAB启动时的缺省值。加法和减法运算时,如果是实数运算,计入1个运算;如果是复数运算, 计入2个运算。乘法和除法时,如果是实数运算,计入1个运算;如果是复数运算,计入6个运算。调用初等函数时,如果自变量是实数,计入1个运算;如果是复数,计数较多,具体次数随具体的函数而定。
flops(0) % 计数器重置为零。
tic % 启动一个可用命令toc读的时钟。

toc % 读时钟,即显示开启时钟以来的时间。如果时钟没有运行,toc返回0值。
clock % 返回用十进制数表示日期和时间的具有6个元素的行向量。前5个元素是整数,秒由几个十进制小数表示。命令 fix(clock) 四舍五入至最接近整数的秒。

etime(t1, t2) % 计算t1和t2时间间隔内所消耗的时间,以秒计算。t1和t2是表示日期和时间的6个元素的行向量。
cputime % 返回以秒计的MATLAB自启动以来所用的CPU时间。

date % 以日—月—年字符串形式返回当前日期。
datetick(axis, form) % 用于在图中的坐标轴上写数据。

输出格式:
在屏幕上,通常以不带小数的整数格式或带四位小数的短浮点数格式显示结果。
如果一个矩阵中所有的元素都是整数,那么它们将以整数格式显示。但是,如果有一个或一个以上的元素是非整数,则所有的元素都以浮点数格式显示。
输出格式在计算中不影响精度, MATLAB总是按高精度完成计算。对大多数的计算机而言,MATLAB在计算中使用16位小数。
命令format用于改变输出格式。在windows和macintosh版本中,输出格式也能通过命令窗体中的下拉菜单控制。

帮助:

help % 给出大约20个主题的列表,每个主题给出了基本信息。这些主题以目录给出,有关每个主题的信息通过help dir给出,这里的dir是目录。
help command % 对指定的命令给出帮助。
help dir % 给出目录dir的内容。
lookfor text % 在所有的M文件的第1行中查找字符串text。
info % 给出有关MATLAB的信息。例如 ,什么种类的计算机能够运行MATLAB,如何得到更多的有关MATLAB最近的进展和新版的信息等等。
whatsnew % 给出新版本中新命令的有关信息。
why % 解释为什么一些事情会出错。

version % 返回一个带当前MATLAB版本号的字符串。
ver % 显示当前MATLAB和工具箱的版本号。

保存:

save % 在文件matlab.mat中保存所有的变量。
save filename % 在文件filename.mat中保存所有的变量。如果在文件名后以点结束filename.,或加了另外一个后缀, 那么MATLAB不能加后缀.mat。
save filename v1 v2 ⋯ % 在文件filename.mat中保存变量v1、v2、⋯等。

load % 从文件filename.mat中装入所有变量。
load filename % 把文件filename.mat中所有变量装入MATLAB。

命令和函数文件:
(1)为了代替在MATLAB提示符下输入MATLAB命令的语句,可以把这些命令写入一个文本文件,这个文本文件可用一个编辑器创建。
(2)每当用户输入这个文件名和它的自变量时,这些命令 就由MATLAB执行。
(3)MATLAB从文件而不是从终端读取命令,当文件中最后一个命令被执行时, MATLAB能再从终端读取命令。
(4)MATLAB将首先在当前工作目录下寻找此文件,如果它不在当 前目录下,那么在该路径下的所有目录中搜索。
(5)M 文件是一种文件:filename.m。
(6)一个M文件包含许多连续的MATLAB命令,它也可以引用其他的 M文件,可以递归。
(7)可以使用命令 what,列出由用户定义的和在MATLAB目录中存放的M文件。

what dirname % 列出当前目录下所有的MATLAB文件。
dir % 列出一个目录或子目录中的所有文件。这个命令可以用不同的路径名和程序单。
ls % 以不同的输出格式列出文件。
pwd % 列出当前的工作目录。

(8)MATLAB中的函数与C中的函数子程序非常相似。
【1】函数文件的第一行必须包含字 function,命令文件没有这种要求。因此,没有这样第一行的M文件是命令文件。
【2】第一行必须指定函数名、输入变量 (参数)和输出变量(参数)。输入参数是从MATLAB的工作空间复制到函数工作空间的变量。
【3】一个函数可以有0个、一个或几个输入参数和返回值。
【4】建议函数取名如同文件名一样。调用时所用的变量并不需要与函数文件中定义的变量有相同的名字。

你可能感兴趣的:(Matlab)