MATLAB之基本语法与基础函数

常用命令dir:列出当前目录下的所有文件clc:清除命令窗clearall:清除环境(从内存中清除所有变量)who:将内存中的当前变量以简单形式列出closeall:关闭所有的Figure窗口变量设置(1).变量命名MATLAB的变量名以字母打头,后最多可跟19个字母或数字,如x,y,ae3和d3er45等都是合法的变量名,不能使用内部函数或命令名作为变量名。MATLAB中的变量名区分大小,ab与...

MATLAB之基本语法与基础函数

常用命令

dir:列出当前目录下的所有文件

clc:清除命令窗

clearall:清除环境(从内存中清除所有变量)

who:将内存中的当前变量以简单形式列出

closeall:关闭所有的Figure窗口

变量设置

(1).变量命名

MATLAB的变量名以字母打头,后最多可跟19个字母或数字,如x,y,ae3和d3er45等都是合法的变量名,不能使用内部函数或命令名作为变量名。

MATLAB中的变量名区分大小,ab与Ab表示两个不同的变量。

(2).变量赋值

l表达式赋值

>>a=(100*0.02)/4.0

  a=0.0500

l矩阵赋值

数值通常按行输入,行之间用分号隔开。

>>C=[-1,0,0;1,-1,0;0,0,2];(省略最后的分号,MATLAB会回显矩阵值)

l通过引用特定的位置可以单独改变某个矩阵元素

如S=[5,6,4],用命令S(2)=8把矩阵S的第二个元素值由6改成8。

l可以引用已定义的矩阵,重新定义一个新矩阵。

如S=[5,6,4],可定义一个新矩阵。

>>B=[3S2]

  B=35642

整数操作

lfix(x):截尾取整

>> fix( [3.12 -3.12])

  ans =3 -3

lfloor(x):不超过 x 的最大整数(高斯取整)

>> floor( [3.12 -3.12])

  ans =3 -4

lceil(x) :大于 x 的最小整数

>> ceil( [3.12 -3.12])

  ans =4 -3

随机序列常用命令

l rand:均匀分布随机矩阵

rand %无变量输入时只产生一个随机数

y=rand(n)%生成n×n随机矩阵,其元素在(0,1)内

y=rand(m,n) %生成m×n随机矩阵,其元素在(0,1)内

例1.1:产生一个3×4随机矩阵,MATLAB命令为:R=rand(3,4)

l randn:正态分布随机矩阵

randn%无变量输入时只产生一个正态分布随机数

y=randn(n)%生成n×n正态分布随机矩阵

y=randn(m,n) %生成m×n正态分布随机矩阵

例1.2:产生均值为0.6,方差为0.1的4阶矩阵

MATLAB命令为:>>mu=0.6;sigma=0.1;>>x=mu sqrt(sigma)*randn(4)。

l randsrc:产生均匀分布数组

randsrc %无变量输入时只产生一个随机数1或者-1

y=randsrc(n)%生成n×n随机数组,其元素为1或者-1

y=randsrc(m,n) %生成m×n随机数组,其元素为1或者-1

例1.3:产生一个 2*3 随机矩阵,MATLAB 命令为:R=randsrc(2,3)

矩阵常用操作命令

MATLAB 的基本单位是矩阵,掌握矩阵的输入、各种数值运算以及矩阵函

数是学好 MATLAB 的关键。

(1).矩阵的输入

l 直接输入创建矩阵

以“[”和“ ]”作为首尾,同行的元素用“,”或空格隔开,不同行的元素用“;”或按 Enter 键来分隔;矩阵的元素可以是数字也可以是表达式,如果是数值计算,表达式中不可包含未知变量。

l 用矩阵函数来生成矩阵

MATLAB 提供了大量的函数来创建特殊矩阵,表 1.1 给出 MATLAB 常用的矩阵函数。

(2).操作符“:”的说明

j:k表示步长为 1 的等差数列构成的数组:[j, j 1, j 2,…, k]。

j:i:k表示步长为 i 的等差数列构成的数组:[j,j i,j 2*i,…, k]。

A(i:j)表示 A(i),A(i 1),…,A(j)。

(3).对矩阵元素的操作

设 A 是一个矩阵,则在 MATLAB 中用如下符号表示它的元素:

A(i,j)表示矩阵 A 的第 i 行第 j 列元素。

A(:,j)表示矩阵 A 的第 j 列。

A(i,:)表示矩阵 A 的第 i 行。

A(:,:)表示 A 的所有元素构造 2 维矩阵

A(:)表示以矩阵 A 的所有元素按列构成的一个列矩阵。

A(i)表示矩阵 A(:)的第 i 个元素。

[]表示空矩阵。

(4).矩阵的运算

(5).数组

在 MATLAB 中数组是一行或者一列的矩阵,对矩阵输入、修改和保存都适用于数组,同时 MATLAB 还提供了一些创建数组的特殊指令。

l 特殊数组的创建

linspace(a,b,n) 给出区间[a,b]的 n 个等分点数据

例 1.7:给出区间[0,1] 的 6 个等分点数据。

MATLAB 命令为:>> linspace(0,1,6)

l 数组运算

位操作

l bitand:按位与

C=bitand(A,B)命令将返回两个非负整数数组 A 和 B 的相应元素按位与操作的结果。为了确保 A 和 B 的元素都是整数,可以使用 ceil、fix、floor 和 round函数来生成 A 和 B。

例 1.9:>>C=bitand(1,2)

结果为:C=0

l bitor:按位或

C=bitor(A,B)命令将返回两个非负整数数组 A 和 B 的相应元素按位或操作的结果。为了确保 A 和 B 的元素都是整数,可以使用 ceil、fix、floor 和 round 函数来生成 A 和 B。

例 1.10:>>C=bitor(1,2)

结果为:C=3

l bitxor:按位异或

C=bitxor(A,B)返回两个非负整数数组 A 和 B 的相应元素进行按位异或的结果,为了确保 A 和 B 的元素都是整数,可以使用 ceil、fix、floor 和 round 函数来生成 A 和 B。

例 1.11:>>C=bitxor(1,2)

结果为:C=3

l bitset:设置指定位的值

C=bitset(A,bit,v)命令将 A 中元素第 bit 位设为 v,其中 v 必须为 0 或 1,A 中的元素必须为非负整数,bit 必须为 1 到 A 中元素浮点整数表示法的位数之间的一个数字。

例 1.12:>>C=bitset(1,2,1)

结果为:C=3

l bitget:获取指定位的值

C=bitget(A,bit)命令将返回 A 中元素用 bit 指定位的值,A 中的元素必须为非负整数,bit 必须为 1 到 A 中元素浮点整数表示法位数之间的一个数字。

例 1.12:

>>C=bitget(1,2)

结果为:C= 0

绘图操作

(1)图形标注

title(‘string’,’属性名’,’属性值’,…) —— 给图形加标题

xlabel (‘string’,’属性名’,’属性值’,…) —— 给 x 轴加标注

ylabel (‘string’,’属性名’,’属性值’,…) —— 给 y 轴加标注

legend (‘string1’,’string2’,…)—— 添加图例,其顺序对应于绘图指令中的顺序

axis ([xmin,xmax,ymin,ymax])—— 控制坐标轴的刻度范围

(2)二维图形

l plot(x,y)

功能:以向量 x,y 为轴,绘制曲线。

注: plot(x,y)命令可用来绘制函数 f(x)图形, 此时可通过向量 x 常用命令 x=a:h:b的形式获得 f(x)函数在绘图区间[a,b]上的自变量点向量数据,对应的函数向量值取为 y= f(x)。步长 h 可以任意选取,一般步长越小,曲线越光滑,但是步长太小,会增加计算量,运算速度也要降低。通常步长 h 取值 0.1 可达到较好的绘图效果。

l plot(x1,y1,x2,y2,x3,y3…)

功能:在同一图形窗口绘制多条不同颜色曲线,曲线关系为

y1=f(x1),y2=f(x2),y3=f(x3)

(3)二维特殊图形

l bar

例 1.15:

>> x=1:5;

>> bar(x),title('直方图')

l Hist 表示生成直方图

M=hist(N)表示将 N 中的最大最小值找出来,然后,平均取十个等间隔点,看以每个间隔点为中心,向两边各扩展 1/2 间隔的范围内,包括 N 的元素个数,因此 M 返回值都是 1*10 大小。
例 1.16:>> b1=[0,1,2,3,4,5,6,7,8,9];b2=[4,5,7];

>>M=hist(b2)

>>M=hist(b1)

文件操作

1fopen打开文件

fopen函数的调用格式为:fid=fopen(文件名,打开方式)

其中文件名用字符串形式,表示待打开的数据文件。常见的打开方式有:‘r’表示对打开的文件读数据,‘w’表示对打开的文件写数据,‘a’表示在打开的文件末尾添加数据。fid用于存储文件句柄值,句柄值用来标识该数据文件,其他函数可利用它对该数据文件进行操作。文件数据格式有两种形式,一种是二进制文件,另一种是文本文件。在打开文件时需要进一步指定文件格式类型,即指定是二进制文件还是文本文件。

2fclose关闭文件

文件读、写等操作完成后,应及时关闭。关闭文件用fclose函数,调用格式为:sta=fclose(fid),该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。

3)二进制文件的读写操作

l fread读二进制文件

fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:[A,COUNT]=fread(fid,size,precision)。

其中A用于存放读取的数据,COUNT返回所读取的数据元素个数。fid为文件句柄,size为可选项,若不选用则表示读取整个文件内容,若选用则它的值可为以下选项:N表示读取N个元素到一个列向量;Inf表示读取整个文件;[M,N]表示读数据到M×N的矩阵中,数据按列存放。precision代表读写数据的类型。

l fwrite写二进制文件

fwrite函数按照指定的数据类型将矩阵中的元素写入到文件中。其调用格式为:COUNT=fwrite(fid,A,precision),其中COUNT返回所写的数据元素个数,fid为文件句柄,A用来存放写入文件的数据,precision用于控制所写数据的类型,其形式与fread函数相同。

M 文件的建立与使用

M文件有命令文件和函数文件两种形式,这两种文件的扩展名相同,都是.m。当用户要运行的命令较多时,直接从键盘上逐条输入较为繁琐,可利用命令文件来解决多行输入问题。用户可将一组相关命令编辑在同一个命令文件中,运行时只需输入文件名字,MATLAB就会自动按顺序执行文件中的命令。函数文件是另一种形式的M文件,它的第一句可执行语句是以function引导的定义语句,在函数文件中的变量都是局部变量。

1)命令文件

命令文件的一般形式为:<M文件名>.m 如a1.m,pp.m等都是合法的M文件名。M文件有两种运行方式:一是在命令窗口直接输入文件名,按Enter键;二是在编辑窗口打开菜单Tools,再单击Run。M文件保存的路径一定要在搜索路径上,否则M文件不能运行。

例1.17:用M命令文件绘制lena.bmp图像。

(2)函数文件

M 函数文件的一般形式为:function <因变量>=<函数名>(<自变量>)

M 函数文件可以有多个因变量和多个自

源文地址:https://www.guoxiongfei.cn/cntech/26879.html