西工大matlab知识点整理(详细版本)

西工大matlab知识点整理(详细版本)
西工大matlab知识点整理(详细版本)

1.

p = [2,0,-3,71,-9,13];%建立多项式系数向量

x = roots(p);%求根

2.

a = [2,3,-1;8,2,3;45,3,9];%建立系数矩阵a

b = [2;4;23];%建立列向量b

x = inv(a)*b

3.基本运算

sin(45*pi/180)

sqrt(2*exp(4.92+0.5)+1)

4.常用命令

命令 含义

clc 清除命令窗口的显示内容

clear 清除Matlab 工作空间中保存的变量

who 或whos 显示Matlab 工作空间中的变量信息

dir 显示当前工作目录的文件和子目录清单

cd 显示或设置当前工作目录

type 显示指定m 文件的内容

help 或doc 获取在线帮助

quit 或exit 关闭/推出MATALB

5.matlab 组成

菜单栏、工具栏、文件编辑窗口、命令窗口、工作空间、历史命令窗口、命令提示符、Start 菜单

6.MATLAB 提供的帮助信息有两类

简单纯文本帮助信息

Help

lookfor (条件比较宽松)例:inverse

窗口式综合帮助信息(文字、公式、图形)

Doc

helpwin

7. 符号计算

syms x y z %建立符号变量

[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)

8.求解定积分 x x x x 532

23719130-+-+=x y z x y z x y z +-=??++=??++=?2328234453923

求解 I= quad('x.*log(1+x)',0,1)

syms x

nt(x*log(1+x),0,1)

ans =

9.多项式曲线拟合

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2]

注: 一次多项式拟合:

p1 = polyfit(x,y,1)

三次多项式拟合:

p3 = polyfit(x,y,3)

plot 原始数据、一次拟合曲线和三次拟合曲线

x2=1:0.1:10;

y1=polyval(p1,x2)

y3=polyval(p3,x2)

plot( x, y, ’*’, x2, y1, ‘:’, x2, y3)

10.复数及其运算

MATLAB 中复数的表达:z=a+bi ,其中a 、b 为实数。

MATLAB 把复数作为一个整体,象计算实数一样计算复数。

11.矩阵是Matlab 最基本的数据对象,并且矩阵的运算是定义在复数域上的。

12.Matlab 程序控制结构

顺序结构

分支结构

if-then-else 语句

if <判断语句>

语句1

end

if <判断语句>

语句1

else 语句2

end

switch-case 语句

switch <判断值>

case 判断值1 ln()x x dx

+?1

0132[1205(25]

)y x x x In MA B

y TLA =---=-

语句1

case 判断值2

语句2

otherwise

语句n

end

循环结构

for-end 语句

for 循环控制变量= 起始值:步长:终止值

循环体

end

while-end 语句

while <循环判断语句>

循环体

end

其他语句

break 和continue 语句

break:跳出循环

continue:提前结束当前循环

return 语句:终止程序

try-catch 语句:异常处理

13.M文件(函数文件)

建立、编辑、保存、调用

14.创建一维数组变量

行:第一种方法:使用方括号“* +”操作符

>>a=[1 3 pi 3+5*i] %or a=[1, 3, pi, 3+5*i]

a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i 第二种方法:使用冒号“:”操作符

>>b=1:10 % x=Start:Increment:End

b=1 2 3 4 5 6 7 8 9 10

第三种方法:利用函数linspace

函数linspace的基本语法

x= linspace(x1, x2, n)

该函数生成一个由n个元素组成的行向量;

x1为其第一个元素;

x2为其最后一个元素;

x1、x2之间元素的间隔=(x2-x1)/(n-1)。

如果忽略参数n,则系统默认生成100个元素的行向量

键入并执行x= linspace(1,2,5)

x=1.0000 1.2500 1.5000 1.7500 2.0000

第四种方法:利用函数logspace

列:使用方括号“* +”操作符,使用分号“;”分割行。

键入并执行x= [1; 2; 3]

X=1

2

3

15.创建二维数组变量

第一种方法:使用方括号“* +”操作符

键入并执行a2=[1 2 3;4 5 6;7 8 9]

a2=

1 2 3

4 5 6

7 8 9

第二种方法:函数方法

函数ones(生成全1矩阵)、zeros (生成全0矩阵) 、reshape

reshape的使用演示

>>a=-4:4

a=

-4 -3 -2 -1 0 1 2 3 4

>>b=reshape(a, 3, 3)

b=

-4 -1 2

-3 0 3

-2 1 4

单下标的使用

>>a=zeros(2, 5);

>>a(:)=-4:5

a =

-4 -2 0 2 4

-3 -1 1 3 5

注意数组的排列顺序。

16.元素与子数组的寻访与赋值

一维数组元素与子数组的寻访与赋值:

>>a=linspace(1,10,5)

a =

1.0000 3.2500 5.5000 7.7500 10.0000

>>a(1:3) %寻访前3个元素组成的子数组

>>a([1 2 5]) %寻访a的第1、2、5个元素组成的子数组

>>a(3:-1:1) %由前3个元素倒序构成的子数组

>>a([1 2 3 5 5 3 2 1])

ans =

1.0000 3.2500 5.5000 10.0000 10.0000 5.5000 3.2500

1.0000

数组元素可以被任意重复访问,构成长度大于原数组的新数组。

二维数组元素与子数组的寻访与赋值:

>>a_2=zeros(2, 4) %创建2x4的全0数组

a_2 =

0 0 0 0

0 0 0 0

>>a_2(:)=1:8

a_2 =

1 3 5 7

2 4 6 8

>>a_2([2 5 8]) %单下标方式寻访多个元素

ans =

2 5 8

>>a_2([2 5 8]) =[10 20 30]

a_2 =

1 3 20 7

10 4 6 30

>>a_2(:,[2 3])=ones(2) %双下标方式寻访并修改

a_2 =

1 1 1 7

10 1 1 30

size函数返回变量的大小,即变量数组的行列数

length函数返回变量数组的最大维数

sub2ind函数-双下标转换为单下标

>>sub2ind(size(A),2,1,2)

ind2sub函数-双下标转换为单下标

>>[I,J] = ind2sub(size(b),IND)

17. 矩阵算术运算

运算运算符含义说明

加+ 相应元素相加

减- 相应元素相减

乘* 矩阵乘法

点乘.* 相应元素相乘

幂^ 矩阵幂运算

点幂.^ 相应元素进行幂运算

左除或右除\或/ 矩阵左除或右除

左点除或右点除.\或./ A的元素被B的对应元素除

18.Matlab提供了6种关系运算符:

<、>、<=、>=、==、~=(不等于)

P = rem(A,3)==0 %被3除,求余

Matlab提供了3种逻辑运算符:

&(与)、|(或)、~(非)

算术运算优先级最高,逻辑运算优先级最低。

19.求向量的最大值和最小值:

(1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值;

(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数

元素,则按模取最大值。

求矩阵的最大值和最小值:

求矩阵A的最大值的函数有3种调用格式,分别是:

(1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值;

(2) [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列

最大值的行号;

(3) max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,

该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。

求最小值的函数是min,其用法和max完全相同。

求和与求积:

sum(X):返回向量X各元素的和。

prod(X):返回向量X各元素的乘积。

sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。

prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。

sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。

prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。

平均值与中值:

求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为:

mean(X):返回向量X的算术平均值。

median(X):返回向量X的中值。

mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。

median(A):返回一个行向量,其第i个元素是A的第i列的中值。

mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。

median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。

20.字符串

1)Matlab 用「单引号」来界定一个字符串。

可以使用方括号“* +”直接连接多个字符串变量,得到一个新字符串变量。

str1 = ‘I like MATLAB,’;% 建立字串变量str1

str2 = ' JavaScript, and Perl!'; % 建立字串变量str2

str3 = [str1 str2] % 直接连接str1及str2,以建立str3

str3 =I like MATLAB, JavaScript, and Perl!

2)如要输入的字符串中有单引号,则由两个连续的单引号来表示。

若要计算字符串变量的长度(即组成字符串的个数),可用length 指令。

sentence = 'I''ve got a date!';

length(sentence) % 计算字字符串sentence的长度

3)double 指令: 查看字符串变量的存储內容(即 ASCII 内码)char 指令: 将 ASCII 內码转换为字符串形式

sentence = 'I''ve got a date!';

sentenceAscii = double(sentence) %查看sentence 的ASCII 码

sentence2 = char(sentenceAscii) % 将ASCII 码恢复成字符串形式4)class 或ischar 指令: 可以用来判断一个变量的类型或它是否为字符串变量。

chinese = ‘今日事,今日毕';

out1 = class(chinese) % out1 的值是“char”

x = chinese+1;

out2 = ischar(x)% out2 的值是0,代表x 不是字符串变量

21.一个字符数组变量存储多行字符串

1)第一种方法是使用二维字符数组(Two Dimensional Character Arrays)必须先确认每个字符串(即每一行)的长度一样,否则就必须在短字符串结尾补齐空格

departments = *‘ee ’; ‘cs ’; ‘econ’+

注意上述语句中空格字符的使用。

departments =

ee

cs

econ

2)用char 指令存储多字符串

departments = char(‘ee’, ‘cs’, ‘econ’) % 注意空格及「,」的使用

3)从二维字符数组访问字符串时,切记要使用deblank 指令来清除字符串尾部的空格字符

departments = char('ee', 'cs', 'econ');

dept1 = departments(1,:); % (1,:)代表第一行的全部元素

dept2 = deblank(dept1); % 使用deblank 指令清除尾部的空格字符

len1 = length(dept1) % 显示变量dept1 的长度=4

len2 = length(dept2) % 显示变量dept2 的长度=2

22.字符串的操作

strcmp 指令: 用于比较字符串的內容的异同

不相等返回0,相等返回1

out1 = strcmp(str1, str2) % 比较字符串str1 和str2

23.空数组(empty array)

有一维是0的数组即为空数组

空数组不占据存储空间

最简单的空数组:0 x 0的矩阵

复杂的空数组:0 x 5 or 10 x 0

例如:>>a=[]; b=ones(0,5);

察看空数组:>>a, b, c % or whos a b c

空数组并非全0数组

数组维数的减小

删除数组的某列和行

>>a = magic(4), a(:,2)=[]

删除(2-D、3-D)数组的单个元素

使用“全下标”方式,不能删除单个元素

>>a(1, 2)=[] %系统会警告信息

使用“单下标”可以删除单个元素

>>a(2:4)=[] %数组a将变为向量

使用“*+”同样可以减小字符数组的维数

24.元胞数组(cell array)

1)赋值语句创建元胞数组

元胞索引(cell indexing)方式

格式:a(1, 2)=,… … …-

元胞内容索引(content indexing)方式

格式:a,1, 2-=*…+ or ‘…’

直接用大括号一次把所有元素括起来

b = {'James Bond', [1 2;3 4;5 6]; pi, ones(5)}

2)Cell indexing方式创建元胞数组

>> a(1,1) = {[1 4 3; 0 5 8; 7 2 9]};

>> a(1,2) = {'Anne Smith'};

>> a(2,1) = {3+7i};

>> a(2,2) = {-pi:pi/10:pi};

“, -” 表示空元胞数组

3)Content indexing方式创建元胞数组

>>b{1,1} = 'James Bond' ;

>>b{1,2} = [1 2;3 4;5 6];

>>b{2,1} = pi;

>>b{2,2} = zeros(5);

4)元胞数组的连接

c=[a b] % or c=[a; b]

5)cell函数创建元胞数组

>>b = cell(2, 3)

b =

[] [] []

[] [] []

>>whos b

Name Size Bytes Class

b 2x3 24 cell array

注意:每个cell占有4个字节的空间

6)celldisp显示元胞数组的全部内容(3种)

>>a

>>celldisp(a) %显示全部内容

>>cellplot(a) %图形方式显示元胞数组的结构

使用内容下标索引显示指定元胞的数据

格式:var_name{row_index, column_index}

或var_name{:}

7)读取元胞数组中的内容

读取上述b元胞数组的第1行、第2列元胞的内容

>>b, d=b{1, 2}

读取b{1, 2}的第3行、第1列的数据。

>> e = b{1,2}(3,1)

读取元胞数组a第1行的所有元胞。

>>f=a(1,:)

删除元胞数组a第1行的所有元胞。

>>a(1,:) = []

Note: 这里使用的是元胞索引(cell indexing),而不是内容索引(content indexing)

25.结构与结构数组的概念

结构(structure)

由字段(或域,fields)组成

每个字段可以是任一种Matlab数据类型的数据或变量

与C语言的结构类型相似

结构数组(structure array)

多个结构构成结构数组(structure array)

结构数组的元素就是一个结构

26.结构数组变量的创建

1)方法一:直接键入

>>clear student % 清除student 变量

>>https://www.360docs.net/doc/889909467.html, = '张三'; % 加入name 字段

>>student.id = 'mr871912'; % 加入id字段

>>student.scores = [58, 75, 62]; % 加入scores字段

>>student % 显示结构变量的数据

student =

name: '张三'

id: 'mr871912'

scores: [58,75,62]

此时,Matlab视student 为一个1x1结构数组

第二个学生的信息建立

>>student(2).name = '张宁'; % 加入name 字段

>>student(2).id = 'mr871913'; % 加入id字段

>>student(2).scores=[68, 85, 92]; % 加入scores字段

此时,student变量已成为一个1x2的结构数组

2)方法二:struc函数

>>clear student

>>student=struct('name', '张听说', 'scores', [50 60]);

>> student(2)=struct('name', '张廷安', 'scores', [60 70]);

>> student(1), student(2) %显示student(1),student(2)

ans =

name: '张听说'

scores: [50 60]

ans =

name: '张廷安'

scores: [60 70]

使用struct创建结构数组变量(一次建立多个元素)

>>clear student

>>student = struct('name', {'张听说', '张廷安'}, 'scores', {[50 60], [60 70]});

>> student(1), student(2) %显示student(1), …

ans =

name: '张听说'

scores: [50 60]

ans =

name: '张廷安'

scores: [60 70]

3)结构数组嵌套(nested)

结构数组中结构的字段还可以是结构。

4)访问结构数组变量的内容

cat函数: 排列结构数组某字段的值

格式:cat(dim, structurefield)

dim=1, 竖排;dim=2, 横排

Exam:

>>cat(1, student.scores)

ans =

55 60

65 80

>>cat(2, student.scores)

ans =

55 60 65 80

5)计算平均值(使用mean函数)

计算每次考试的平均值

>>average1=mean(cat(1, student.scores))

average1 =

60 70

27.plot指令的基本调用格式

(1)plot(x)

x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线

x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等

于x数组的列数。

x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多

条曲线

(2)plot(x, y)

x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线

x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不

同颜色的曲线

x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。

x = 0:pi/100:2*pi;

y = 2*exp(-0.5*x).*sin(2*pi*x);

plot(x,y)

t = -pi:pi/100:pi;

x = t.*cos(3*t);

y = t.*sin(t).^2;

plot(x,y)

(3)plot(x1, y1, x2, y2, …)

绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标

的曲线2,等等。

其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。

(4)多次叠绘

多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。

hold on 保持当前坐标轴和图形,并可以接受下一次绘制。

hold off 取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的

图形,不保留以前的坐标格式、曲线。

(5)双纵坐标:plotyy指令

plotyy指令调用格式:

plotyy(x1, y1, x2, y2)

x1-y1曲线y轴在左,x2-y2曲线y轴在右。

(6)多子图

subplot(m, n, k)

使(m*n)幅子图中第k个子图成为当前图

subplot(‘postion’, *left, bottom, width, height+)

在指定的位置上开辟子图,并成为当前图

(7)分格线与grid指令

grid on 画出分格线

grid off 不画分格线

MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。

(8)坐标框

box on 控制加边框线

box off 控制不加边框线

(9)刻度设置

指令及格式:

set(gca, ‘xtick’, xs, ‘ytick’, ys)

xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。

28.图形标识

(1)图形标识包括:

图名(title)

坐标轴名(xlabel、ylabel)

图形文本注释(text)

图例(legend)

(2)简捷使用格式

title(s) % s为字符串变量或常量

xlabel(s)

ylabel(s)

legend(s)

text(x, y, s) % 指定坐标(x, y)处加注文字

(3)直方图(柱形图)bar

垂直直方图

累计式

year=[1990 1995 2000];

people=[90.7 281.6 254.8; 70.6 271 323.7; 73.9 214.6 326.5];

bar(year, people, ‘stack’);

legend(‘\fontsize{6}第一产业’, ‘\fontsize{6}第二产业’, ‘\fontsize{6}

第三产业');

分组式

bar(year, people, ‘group’); % 分组式直方图

legend(‘\fontsize{6}第一产业’, ‘\fontsize{6}第二产业’, ‘\fontsize{6}

第三产业');

水平直方图

累计式

barh(year, people, ‘stack’); % 累积式直方图

legend(‘\fontsize,6- first’, ‘\fontsize,6-second’, ‘\fontsize{6}third');

分组式

barh(year, people, ‘group’); % 分组式直方图

legend(‘\fontsize,6-first’, ‘\fontsize,6-second’, ‘\fontsize{6}third');

(4)饼图指令pie

饼图指令pie 用来表示各元素占总和的百分数。该指令第二输入变量是与第

一变量同长的0-1向量,1使对应扇块突出。

a=[1,1.6,1.2,0.8,2.1];

subplot(1,2,1),pie(a,[1 0 1 0 0]),

legend({'1','2','3','4','5'})

subplot(1,2,2), b=int8(a==min(a))

pie3(a,b)

colormap(cool)

(5)离散杆图stem

余弦波的采样信号图

t = linspace(-2*pi,2*pi,20);

h = stem(t,cos(t));

(6)填充图subplot(222);fill(x,y,'r');

阶梯图subplot(223);stairs(x,y,'b');

(7)极坐标图

polar函数用来绘制极坐标图,其调用格式为:

polar(theta,rho,选项)

例:绘制ρ=sin(2θ)cos(2θ)的图形

theta = 0:0.01:2*pi;

rho = sin(2*theta).*cos(2*theta);

polar(theta,rho,'k');

29.3-D数据可视化之三维绘图的基本操作

(1)三维线图指令plot3

三维绘图指令中,plot3最易于理解,它的使用格式与plot十分相似,只是

对应第3 维空间的参量。

plot3(x,y,z,'b-',x,y,z,'bd');

(2)三维网线图(mesh)和曲面图(surf)

画函数z=f(x,y)所代表的三维空间曲面,需要做以下的数据准备工作:

确定自变量的取值范围和取值间隔。

x=x1:dx:x2;

y=y1:dy:y2;

构成x-y平面上的自变量采样“格点”矩阵。

利用MATLAB指令meshgrid产生“格点”矩阵

[xa, ya]=meshgrid(x,y) ;

计算函数在自变量采样“格点”上的函数值,即z=f(x,y)。

网线图、曲面图绘制。

例如:

绘制函数z=x^2+y^2的曲面

x=-4:4;y=x;

[x,y]=meshgrid(x,y); %生成x-y 坐标“格点”矩阵

z=x.^2+y.^2; %计算格点上的函数值

subplot(1,2,1), mesh(x,y,z); %三维网格图

subplot(1,2,2), surf(x,y,z); %三维曲面图

colormap(hot);

30.图像文件操作

(1)图像文件的读写与图像显示

imread指令

读取图像文件(BMP, GIF , PNG, JPEG, and TIFF)

imshow指令

显示图像

imwrite指令

保存图像

例:读取图像文件

img1=imread(‘mudan.jpg'); % Load image data

img2=imread('eight.tif');

显示图像:

imshow(img1); % Display image

lighter = 2 * img1;

imwrite(lighter, 'mysaved.jpg')保存图像

查看保存结果

>>dir mysaved.*

(2)彩色图像转换为灰度图像

black = rgb2gray(img1);

imshow(black)

图像的缩放zoom on

(3)图像特征提取

imag_edge1 = edge(img2,‘sobel’); %sobel边缘提取算法

subplot(121),imshow(imag_edge1)

imag_edge2 = edge(img2,'canny'); %canny边缘提取算法

subplot(122),imshow(imag_edge2)

31.M文件的分类

(1)用Matlab语言编写的程序,称为M文件。

是由若干Matlab命令组合在一起构成的,它可

以完成某些操作,也可以实现某种算法。

M文件根据调用方式的不同分为两类:

命令文件(Script File)

函数文件(Function File)

它们的扩展名都是.m

(2)命令文件和函数文件的区别

命令文件没有输入参数,也不返回输出参数;函数文件可以带输入参数,也可以返回输出参数。

命令文件对工作空间中的变量进行操作,文件中所有命令的执行结果也返回工作空间中;函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量也被清除。

命令文件可以直接运行;函数文件不能直接运行,要以函数调用的方式来调用它。

32.程序控制结构

(1)顺序结构

数据的输入

A = input(提示信息,选项);

A = input(‘输入A矩阵’);

如果在input函数调用时采用’s’选项,则允许用户输入一个字符串。

例:xm = input(‘What’’s your name?’,’s’);

数据的输出

命令窗口输出函数主要有disp函数,其调用格式为:

disp(输出项)

其中输出项既可以为字符串,也可以为矩阵。

程序的暂停

程序执行过程中暂停,可用pause函数,其调用格式为:

pause(延迟描述)

如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程

序继续执行。

若要强行中止程序的运行可按Ctrl+C键。

(2)选择结构

Matlab用于实现选择结构的语句有if语句,switch语句和try语句。

if语句

单分支if语句

if 条件

语句组

End

双分支if语句

if 条件

语句组1

else

语句组2

End

多分支if语句

if 条件1

语句组 1

elseif 条件2

语句组 2

elseif 条件m

语句组m

else

语句组n

end

switch语句

switch 表达式

case 表达式1

语句组1

case 表达式2

语句组2

case 表达式m

语句组m

otherwise

语句组n

End

try语句

try

语句组1

catch

语句组2

End

(3)循环结构

for语句

for语句的格式为:

for 循环变量=表达式1:表达式2:表达式3

循环体语句

end

其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值

为循环变量的终值。步长为1时,表达式2可以省略。

while语句

while条件

循环体语句

end

其执行过程为:

若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立

则跳出循环。

break语句和continur语句

break语句用于终止循环的执行

continue语句控制跳过循环体中的某些语句。

33.函数文件

(1)函数文件的基本结构

函数文件由function语句引导,其基本结构为:

function 输出形参表= 函数名(输入形参表)

注释说明部分

函数体语句

其中,以function开头的一行为引导行,表示该M文件是一个函数文件。当输出

形参多于一个时,应该用方括号括起来。

说明:

关于函数文件名

函数文件名通常由函数名再加上扩展名.m组成。

当函数文件名与函数名不同时,Matlab将忽略函数名而确

认文件名因此调用时使用函数文件名。

关于注释说明部分

注释说明包括3部分:

紧随引导行之后以%开头的第一注释行。

这一行一般包括大写的函数文件名和函数功能简要描述,供lookfor

关键词查询和help在线帮助时使用。

第一注释行及之后连续的注释行。

通常包括函数输入/输出参数的含义及调用格式说明等信息,构成全

部在线帮助文本。

与在线帮助文本相隔一空行的注释行。

包括函数文件编写和修改的信息,如作者和版本等。

(如果在函数文件中插入了return语句,则执行到该语句就结束函数的执行,流程转至调用该函数的位置。通常也不使用return语句。)

例如:

function [s,p] = fcircle(r)

% FCIRCLE calculate the area and perimeter of a circle of radii r

% r 圆半径

% s 圆面积

% p 圆周长

%2006年2月30日编

s = pi*r*r;

p = 2*pi*r;

将以上函数文件以文件名fcircle.m保存,然后在命令窗口调用。

[s,p] = fcircle(10)

输出结果是:

s =

314.1593

p =

62.8319

(2)函数调用

函数调用的一般格式是:

[输出实参表] = 函数名(输入实参表)

注意:函数调用时,各实参出现的顺序、个数,应与函数定义时相同。

(3)函数参数的可调性

Matlab在函数调用上有一个与一般高级语言不同之处:

函数所传递参数数目的可调性,即参数的数量可以改变。

在调用函数时,Matlab用两个预定义变量nargin和nargout分别记

录调用该函数时的输入实参和输出实参的个数。

(4)全局变量与局部变量

函数文件中的变量是局部变量。

全局变量的作用域是整个Matlab的工作空间,所有函数都可以对它

进行存取和修改。

全局变量用global命令定义,格式为:

global 变量名

34.程序调试

一般说来,应用程序的错误有两类,一类是语法错误,另一类是运行时的错误。

(1)Matlab调试菜单

控制单步运行

step:单步运行,不进入函数;

step in: 单步运行,进入函数;

step out:停止单步运行;

save and run:存储文件并开始运行。

断点操作

stop if error/warnings: 在程序执行出现错误或警告时,停止程序运行,进入调

试状态。

35.Matlab矩阵分析与处理

(1)通用的特殊矩阵

常用的产生通用特殊矩阵的函数有:

zeros:产生全0矩阵(零矩阵)。

ones:产生全1矩阵(幺矩阵)。

eye:产生单位矩阵。

rand:产生0~1间均匀分布的随机矩阵。

randn:产生均值为0,方差为1的标准正态分布随机矩阵。

(2)对角阵与三角阵

提取矩阵的对角线元素函数:diag

A = [1,2,3;4,5,6];

D = diag(A)

D =

1

5

diag函数还有一种形式:diag(A,k)提取第k条对角线的元素。

D1 = diag(A,1)

D =

2

6

构造对角矩阵

如果V是一个m个元素的向量,diag(V)将产生一个m×m对角矩阵,

其主对角线元素即向量V为的元素。

(2)矩阵求逆与线性方程组求解

矩阵的逆:求方阵A的逆矩阵可调用函数inv(A)。

求解方程组:x = inv(A)*b %x = A\b,也可以运用左除运算符求解。

(3)矩阵行列式值

把一个方程看做一个行列式,并按行列式的规则求值,称

为行列式的值。在Matlab中,使用函数det(A)得到。

36.多项式(polynomial)

(1)多项式的MATLAB表达:

多项式x4-12x3+25x+116由行向量:

p=[1 -12 0 25 116]表示。

(2)求解多项式的根:roots指令

求解多项式x4-12x3+25x+116的根

>>p=[1 -12 0 25 116]

p =

1 -1

2 0 25 116

>>r=roots(p)

(3)已知多项式的根,求解多项式

>> pp=poly(r)

pp =

1.0000 -1

2.0000 -0.0000 25.0000 116.0000

即:x4-12x3+25x+116

(4)多项式的乘法(conv指令)

多项式a(x)=x3+2x2+3x+4

和b(x)= x3+4x2+9x+16的乘积。

>> a=[1 2 3 4] ; b=[1 4 9 16];

>> c=conv(a, b)

c =

1 6 20 50 75 84 64

两个以上的多项式的乘法需要重复使用conv.

(5)多项式加法: MATLAB没有提供进行加法运算的函数。

如果两个多项式向量大小相同,标准的数组加法有效。把多项式a(x)与上面给

出的b(x)相加。

>> d=a+b

当两个多项式阶次不同,低阶的多项式必须用首零填补,使其与高阶多项式

有同样的阶次。

(6)多项式的除法(deconv)

c(x)=x6+6x5+20x4+50x3+75x2+84x+64

除以b(x)= x3+4x2+9x+16

>> c=[1 6 20 50 75 84 64];

>> b=[1 4 9 16];

>> [q , r]=deconv(c , b)

q =

1 2 3 4

r =

0 0 0 0 0 0 0

(7)多项式的导数(polyder)

求b(x)= x3+4x2+9x+16的导数。

>> b=[1 4 9 16];

>> d=polyder(b)

d =

3 8 9

结果为:3x2+8x+9

另外两种形式为:

p = polyder(P,Q):求P*Q的导函数

[p,q] = polyder(P,Q):求P/Q的导函数,导数分子存入p,分母存入q

(8)多项式的估值(polyval)

绘制p(x) = x3+4x2-7x-10在[-1, 3]段上的曲线。

x=linspace(-1, 3); % choose 100 data points between -1and 3.

p=[1 4 -7 -10];

v=polyval(p, x);

plot(x, v);

title('x^{3}+4x^{2}-7x-10');

xlabel('x')

(9)MATLAB中没有直接提供数值导数的函数,只有计算向前差分的函数diff,其调用格式为:

DX = diff(X) 计算向量X的向前差分

DX = diff(X,n) 计算向量X的n阶向前差分

例如:

f = inline(‘sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2’); %内联函数

x = -3:0.01:3;

dx = diff(f([x,3.01]))/0.01; %根据定义式求导数

plot(x,dx)

(10)数值积分

常用积分指令:quad和quadl。

一般说来,quadl比quad更有效。

具体调用格式如下:

q = quadl(fun,a,b)

q = quadl(fun,a,b,tol)

q = quadl(fun,a,b,tol,trace)

[q,fcnt] = quadl(fun,a,b,...)

输入量fun为被积函数的句柄。

输入量a, b分别是积分的下限、和上限,都必须是确定的数值;

使用Matlab需要掌握的一些知识点

1.滤波:medfilt1,smooth,filter,无法解决数据NAN污染周边数据 2.aa([1,3],:) = aa([3,1],:); 可以交换行与行之间的数据 3.用一下整体乘法,提高计算效率 4.2019.10.4纠错:程序进入循环出不来,原因是小循环中的条件计算程 序参数与大循环参数冲突 5.[SNR,I] = min(Data_Ze,[],1,'omitnan'); %排除每一列中的NAN, 求每一列中的最小值,SNR为每列的最小值,I为每列最小值的下标 6.ncdisp()可以充分地体现nc文件的方方面面的信息 7.命令行窗口显示信息: X = ['仰角',num2str(elevtation_number), '下的ML总点数:']; % 命令窗口要显示的信息 disp(X); 8.弹出提示框显示信息 msgbox('中间数据图像显示完毕!','温馨提示','modal'); errordlg('参数超出范围或者参数输入不足,请重新配置!', 'Warning'); 9.在图中标记数据 str=[ num2str(r') 'km']; 显示的文本 text(x,y,cellstr(str)); (x,y)要显示的位置 10.标记图中线条内容 l = legend('温度廓线','露点温度廓线'); %标注线条代表内容 title(l,'线条表示内容'); %线条标题 11.matlab求和取均值以及计算标准差的时 数据有nan使用下面三个特定的函数(nansum,nanmean,nanstd)12.Matlab 简化运算 ZH_Data1=mod((ZH_Data0+33)*2,256)*0.5-33; ZH_Data1(ZH_Data1==-33)=NaN; ZH_Data=ZH_Data1(1:1192,:,1); 13.完成仰角方位距离三维元素位置的转换 permute(ZH_data,[3,2,1]); 14.shading阴影函数 控制曲面和图形对象的颜色着色,即用来处理色彩效果的,包括以下三种形式: shading faceted:默认模式,在曲面或图形对象上叠加黑色的网格线; shading flat:是在shading faceted的基础上去掉图上的网格线;

MATLAB复习知识点汇总

MATLAB 复习 1、实现符号函数 运算功能的函数m 文件为: function y=sgn(x) if x<0 y1=-1; elseif x==0 y1=0; else y1=1; end y=y1; 2、求满足1+2+3+…n<100的最大正整数n 的MATLAB 程序为: sum=0;n=0; while sum<100 n=n+1; sum=sum+n; end 1,0,sgn()0,0, 1,0x y x x x >?? ===??-

sum=sum-n; n=n-1; n,sum 3、m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File),两种文件的扩展名都是m。 4、反馈控制系统品质要求:稳定性、准确性、快速性 5、按不同系统的特征方程式,可将自动控制系统分为线性系统和非线性系统。 6、MATLAB控制相关的工具箱 (1)控制系统工具箱 (2)系统辨识工具箱 (3)模型预测控制工具箱 (4)鲁棒控制工具箱 (5)神经网络工具箱 7、MATLAB系统的构成 (1)开发环境(2)数学函数库(3)MATLAB语言(4)图形处理系统(5)应用程序接口 8、常用工具箱 (1)控制类工具箱(2)应用数学类工具箱(3)信号处理类工具箱(4)其他常用工具箱 9、MATLAB语句形式:>>变量=表达式 10、MATLAB常用命令 quit 关闭MATLAB

exit 关闭MATLAB clc 清除MATLAB 命令窗口中的所有显示内容 clear 清除工作空间中保存的所有变量 11、MATLAB 基本数据类型:双精度数组、字符串数组、元胞数组、结构数组 12、矩阵的创建 (1)直接输入法(2)通过数据文件创建矩阵(3)通过m 文件创建矩阵(4)通过函数创建矩阵(5)冒号法 13、冒号法 [1]冒号法构造向量 冒号表达式的一般格式为:向量名=初值:步长:终值 [2]冒号法构造矩阵 一般格式为: A(:,j ):表示矩阵A 的第j 列; A(i ,:):表示矩阵A 的第i 行。 A(i,j)表示取矩阵A 的第i 行第j 列交叉位置的元素 14、矩阵的运算 /(矩阵的右除)或\(矩阵的左除) A -1=inv(A) 矩阵的逆 15、求下面方程组的根 1231231 2323532255316 x x x x x x x x x +-=?? -+=??--=?

(整理)matlab16常用计算方法.

常用计算方法 1.超越方程的求解 一超越方程为 x (2ln x – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 01002ln()3 x x =- 其中x 0是一个初始值,由此计算终值x 。取最大误差为e = 10-4,当| x - x 0| > e 时,就用x 的值换成x 0的值,重新进行计算;否则| x - x 0| < e 为止。 [程序]P1_1abs.m 如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)>1000,break ,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)<1e-4,break ,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,'.-','LineWidth',2,'MarkerSize',12)%画迭代线'.-'表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title('超越方程的迭代折线','fontsize',fs)%标题 xlabel('\itn','fontsize',fs) %x 标签 ylabel('\itx','fontsize',fs) %y 标签 text(length(xx),xx(end),num2str(xx(end)),'fontsize',fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 100()2ln()3f x x x =-- MATLAB 求零函数为fzero ,fzero 函数的格式之一是 x = fzero(f,x0) 其中,f 表示求解的函数文件,x0是估计值。fzero 函数的格式之二是 x = fzero(f,[x1,x2])

MATLAB学习知识重点

1,计算矩阵的特征值和特征向量 【V,D 】=eig (A ) 其中A 指的是矩阵 V 指的是特征向量组成的矩阵 D 指的是特征值所组成的矩阵 A=[0 1 0;1 0 1;0 1 0]; >> [V,D]=eig(A) V = 0.5000 -0.7071 0.5000 -0.7071 0.0000 0.7071 0.5000 0.7071 0.5000 D = -1.4142 0 0 0 -0.0000 0 0 0 1.4142 2,求线性方程的解 1231231232314354578950x x x x x x x x x ++=-+=++= 这是一个非齐次方程方程,对于线性代数来讲,很难求解,但是利用MATLAB 来求 A=[1 2 3;3 -5 4;7 8 9]; 1 B=[14 5 50]; 2 x=A\B 3 B=[14;5;50]; 4 这4个语句的区别,特别是2.3两句的区别,2语句中B 表示的是1行3列,但是4语句中的表示的3行1列。 同时,X=A\B 很X=A/B 也是很有能区别的,具体的区别如下: X=A\B 表示的是A*X=B 的解 X=A/B 表示的是X*A=B 的解,在这里,具体解释如下;A*X=B ,

在线性代数中,X=A^(-1)B ,所以X=A\B。X*A=B的解为X=BA^(-1),就是X=B/A。 3,一元方程求根 这个在计算中是个难题,一元多次方程式很难求解的,对于纯粹的手工计算来说,所以有MATLAB比较方便,具体语句如下:()23 1.350.6680.4360.69552 =+++ f x x x x P=[0.69552 0.436 0.668 1.35]; >> X=roots(P) X = 0.2817 + 1.2456i 0.2817 - 1.2456i -1.1902 + 0.0000i 对于这个方程来说,要注意的是,在构成向量时,一定要从告辞往低次排列,中间缺少次数的,用0代替,求解语句是roots(P)。4,图形处理功能 A, 可以绘制函数图像,具体的语句如下: >> x=linspace(0,6); 这个表示X轴,在0到6内取100个点,这是默认的数值100。当然还有可以设定数值的方法linspace(0,6,100)表示的是在0到6内取等间隔取100个点。 >> y1=sin(2.*x); >> plot(x,y1)这是绘制函数sin(2X)的图像,在这里要注意的,

Matlab使用技巧

Matlab-scope示波器菜单调用命令set(0,'ShowHiddenHandles','on'); set(gcf,'menubar','figure'); 一般的测量检测模块是把示波器输入端连到要测量的参数所在点或者回路。Multimeter则不一样。楼主有没有注意过有的模块的连接是尖头的,有的是一个圆圈形状的?可以理解为尖头的是弱电或数字信号,可以用示波器直接测。圆头的是强电信号,不能直接用示波器。对于这样的信号,一般是:有些器件(强电器件)打开后,器件设置单中最后有一栏是“测量量”,选择测量什么信号以后,再用Multimeter“不接触测量”。比如:一个RLC模块,最后一栏选定“测量所有电流电压”。注意这之前Multimeter打开左栏是空白的,外观是一个“回”里面一个“0”,选定RLC“测量所有电流电压”后打开Multimeter,左栏就有RLC的电流电压什么的了。选定要测的,移到右栏,就可以用示波器测波形了。此后“回”里面就不是“0”了,而是用户选择测量的数据个数了。matlab 6.5/7.0——simulink模型无法保存及其兼容性问题完整解决方案2009-06-25 09:45 mdl文件在6.5里面做的,但是到了7.0里面却打不开,下面就是相关信息:Warning: Unable to load model file 'd:\MATLAB7\work\*.mdl'. Run "bdclose all;

set_param(0, 'CharacterEncoding', Enc)" where Enc is one of windows-1252, ISO-8859-1, then load the model. The first character that is not supported in the current character encoding setting ('ibm-1386_P100-2002') occurs on line 1795, byte offset 21. To correctly load models with non-ASCII characters, you must explicitly use the character encoding that was used to save the file. Type "help slCharacterEncoding" for more information on setting character encoding and to learn more about which encodings are commonly found on your platform. 或 者是直接保存出现如下信息:Error while saving model 'untitled'using the character encoding setting 'ibm..... 问题产生原因:模型中含有不能识别的字符,比如中文等等,尤其是matlab对中文的支持不是很 好(不知道是不是D版的原因)。解决的办法:(1)在工作空间中输入下列命令,然后打开bdclose all; set_param(0,'CharacterEncoding','windows-1252') 或(2)在工作空间中输入下列命令,然后打开bdclose all set_param(0, 'CharacterEncoding', 'ISO-8859-1') 或(3)在工作空间中输入下列命令,然后

中国科学院大学_张敏洪_matlab知识点整理_第二章MATLAB 语言程序设计基础

第二章MATLAB 语言程序设计基础 ——MATLAB 通用命令-3 ——MATLAB 的保留常量,运算符号-10 ——符号变量声明syms var_list var_props-14 ——符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)-15 ——冒号表达式v=s1:s2:s3该函数生成一个行向量v,其中s1是起始值,s2是步长(若省略步长为1),s3是最大值-18 ——子矩阵提取B=A(v1,v2) v1、v2分别表示提取行(列)号构成的向量。(逗号)-20 ——矩阵翻转-25 ——数学运算符号及标点符号,乘除法,左除右除,乘方-27 ——矩阵的逻辑运算-35 ——矩阵的比较运算>, >=, <, <=, ==,~=, find(), all(), any() -36 ——解析结果的化简与变换s1=simple(s) collect( ) 合并同类项 expand( ) 展开多项式 factor( ) 因式分解 numden( ) 提取多项式的分子和分母 sincos( ) 三角函数的化简-38 ——变量替换-41 ——基本数论运算---下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数-42 ——2.4 MATLAB 语言流程控制-47 ——nargin,nargout 分别表示输入和返回变量的实际个数 varargin, varargout 输入、输出变量列表(可变输入输出个数) ——2.5.2 可变输入输出个数conv( ) 可以计算两个多项式的积-65 ——2.6 二维图形绘制-68 ——图形元素属性获取与修改-74 ——2.6.2 其他二维图形绘制语句-76 ——2.6.3 隐函数绘制及应用-80 ——2.7.1 三维曲线绘制-81 ——2.7.2 三维曲面绘制-83

2010matlab复习提纲

2010—2011数值计算与MATLAB复习提纲 考试知识点 第二章 1)变量的命名规则 2)常用预定义变量:ans、eps、pi、i、j、inf、Inf、NaN、nan 3)内存变量文件的生成与加载:save / load 4)常用数学函数:sin、cos、sqrt、log、log10、log2、exp、pow2、abs、rem、 mod、fix、floor、ceil、round 5)矩阵的建立:直接输入法, 利用冒号表达式建立一个向量、linspace的含义与用法、 建立大矩阵 a)熟练掌握书本相关例题 6)矩阵的拆分:矩阵元素,size()\length(),矩阵拆分,利用空矩阵删除矩阵的元素 a)熟练掌握书本相关例题 7)特殊矩阵: zeros/ones/eye/rand/randn/zeros(size(A)) a)给定区间内的随机矩阵的建立 b)给定均值和方差的正态分布随机矩阵的建立 c)熟练掌握相关例题P26,2-4 8)Matlab运算: a)算术运算:+、-、*、/、\、^、点运算 b)关系运算:P32页6种关系运算符、关系运算德运算法则、相关例题 c)逻辑运算P33页3种逻辑运算符& | ~ 逻辑运算德运算法则、相关例题 d)运算优先级:算术> 关系> 逻辑 e)find()函数 9)对角阵与三角阵:diag()、triu()、tril() 10)矩阵的转置与旋转:rot90() 11)矩阵的逆、方阵的行列式:inv()、det() 12)字符串 ?本章相关的上机习题 第三章 matlab程序设计 1)命令文件与函数文件的区别:参数、变量、调用方式 2)程序的顺序结构,input函数及其应用、disp函数及其应用、程序的暂停 3)选择结构if语句,switch语句 4)循环结构for语句,while语句,break语句,continue语句、循环的嵌套P66, 3-8,3-9,3-10 5)函数文件:函数的定义,函数的调用(包括函数的递归调用)P70-71,3-15,3-16 6)全局变量与局部变量的用法:P72,3-18 ?本章相关的例题和布置的上机习题

matlab编程技巧

1、. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。MATLAB这时可能正疲于应付,响应会有些滞后。 2. figure命令新建一个绘图窗口 figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个figure窗口时,在命令窗口中执行如Plot等命令将覆盖当前figure窗口中的对象。所谓的当前figure窗口,也就是最后一次查看的窗口(可以用命令gcf得到)。 figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure。 3. 注释掉一段程序:%{、%}。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和{ 的组合。输入%{后,后面的代码都会变绿,在注释结束的地方再加上 %} 。 也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R。 将光标放在需要注释的行中,按Ctrl+R,将该行变为注释。取消注释也是一样的,快捷键为Ctrl+T。 4. doc 命令名,打开命令的帮助文档 与help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。 5. clc 清屏 清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。 6. clear 和clear all clear 变量名:可以清除workspace中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。 clear all 清除所有的变量,使workspace一无所有,当重新开始一次算法验证时,最好执行一次,让workspace中的变量一目了然。 7. close all 如果开了多个绘图窗口,用这个命令将它们一起关掉。 8. 上下光标键↑↓ 在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。如果输入命令的前几个字母如 [row, col] =,再使用光标键,则只会选择以这些字母开始的命令。 9. Tab补全 对名称记得不太清楚的命令,可以输入开头的几个字母,然后按Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。 10. cell模式 在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(%% )开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。 执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。 cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。 11. 获取文件列表,批处理

《MATLAB程序设计》复习资料

Matlab 习题及复习要点 1. Matlab 的英文组成;程序和变量的命名规则; 在MATLAB 语言中是区分字母大小的,也就是说,大写字母和小写字母代表的东西是不同的。 2.Matlab 中注释、关键词等的显示颜色;如何设置当前路径、如何设置搜索路径(例如第一次上机练习过的,新建的“D:\temp ”目录中有脚本文件abc.m ,若要能在命令窗口输入abc 执行则..); 3.熟悉Matlab 中的几种数据类型(int8、double 、logical 等); 4.在MATLAB 中计算数学公式(如三角函数、对数、开根号等)的表达; 5.掌握数组的几个操作(裁剪、扩增、eye 、zeros 等)、对角阵指令、均匀分布随即向量指令;数组中行和列的分隔符; 6. 在循环结构中的几个命令:break 、continue 等; 7. 已知字符'A'、'Z'、'a'、'z'的ASCII 码分别为65、90、97、122,str1为全为大写字母的字符串,采用什么命令可将该字符串转换成小写。 8. 在MATLAB 中求解线性方程组=Ax b 可采用什么指令; 9. 掌握基本运算符,例如*、.*、/、./、^、.^ 的区别 10.读懂逻辑表达式,会写出逻辑表达式的结果(0或1) 11. 掌握集中循环结构,尤其if..elseif…else…end 和swich…case 结构的语法,要准确。 12. 会编写分段函数的程序; x 和y 满足如下关系: 221211212x x y x x x x ?? 编写函数y=f(x),用于计算上述分段函数。 13. 绘图时采用的几个命令的掌握:hold on 、plot 、plot3 14*.用语句[x, y]=meshgrid(a:b)构建网格数据,例子如下: 示例一: x=-3:1:3;y=-2:1:2; [X,Y]= meshgrid(x,y); 这里meshgrid (x ,y )的作用是分别产生以向量x 为行,向量y 为列的两个大小相同的矩阵,其中x 的行是从-3开始到3,每间隔1记下一个数据,并把这些数据集成矩阵X ;同理y 的列则是从-2到2,每间隔1记下一个数据,并集成矩阵Y 。即 X= -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3

计量经济学(英文)重点知识点考试必备

第一章 1.Econometrics(计量经济学): the social science in which the tools of economic theory, mathematics, and statistical inference are applied to the analysis of economic phenomena. the result of a certain outlook on the role of economics, consists of the application of mathematical statistics to economic data to lend empirical support to the models constructed by mathematical economics and to obtain numerical results. 2.Econometric analysis proceeds along the following lines计量经济学 分析步骤 1)Creating a statement of theory or hypothesis.建立一个理论假说 2)Collecting data.收集数据 3)Specifying the mathematical model of theory.设定数学模型 4)Specifying the statistical, or econometric, model of theory.设立统计或经济计量模型 5)Estimating the parameters of the chosen econometric model.估计经济计量模型参数 6)Checking for model adequacy : Model specification testing.核查模型的适用性:模型设定检验 7)Testing the hypothesis derived from the model.检验自模型的假设 8)Using the model for prediction or forecasting.利用模型进行预测 Step2:收集数据 Three types of data三类可用于分析的数据 1)Time series(时间序列数据):Collected over a period of time, are collected at regular intervals.按时间跨度收集得到

MATLAB使用方法1

A a abs绝对值、模、字符的ASCII码值acos反余弦 acosh反双曲余弦 acot反余切 acoth反双曲余切 acsc反余割 acsch反双曲余割 align启动图形对象几何位置排列工具all所有元素非零为真 angle相角 ans表达式计算结果的缺省变量名any所有元素非全零为真 area面域图 argnames函数M文件宗量名 asec反正割 asech反双曲正割 asin反正弦 asinh反双曲正弦 assignin向变量赋值 atan反正切 atan2四象限反正切 atanh反双曲正切 autumn红黄调秋色图阵 axes创建轴对象的低层指令 axis控制轴刻度和风格的高层指令 B b bar二维直方图 bar3三维直方图 bar3h三维水平直方图 barh二维水平直方图 base2dec X进制转换为十进制 bin2dec二进制转换为十进制blanks创建空格串 bone蓝色调黑白色图阵 box框状坐标轴 break while或for环中断指令brighten亮度控制C c capture(3版以前)捕获当前图形 cart2pol直角坐标变为极或柱坐标 cart2sph直角坐标变为球坐标 cat串接成高维数组 caxis色标尺刻度 cd指定当前目录 cdedit启动用户菜单、控件回调函数设计工具 cdf2rdf复数特征值对角阵转为实数块对角阵 ceil向正无穷取整 cell创建元胞数组 cell2struct元胞数组转换为构架数组celldisp显示元胞数组内容 cellplot元胞数组内部结构图示 char把数值、符号、内联类转换为字符对象 chi2cdf分布累计概率函数 chi2inv分布逆累计概率函数 chi2pdf分布概率密度函数 chi2rnd分布随机数发生器 chol Cholesky分解 clabel等位线标识 cla清除当前轴 class获知对象类别或创建对象 clc清除指令窗 clear清除内存变量和函数 clf清除图对象 clock时钟 colorcube三浓淡多彩交叉色图矩阵colordef设置色彩缺省值 colormap色图 colspace列空间的基 close关闭指定窗口 colperm列排序置换向量 comet彗星状轨迹图 comet3三维彗星轨迹图 compass射线图

Matlab知识点

零、帮助 1、help命令:如help fun 显示某函数的功能和语法描述。如help sin。若单独使用help 命令,则显示出帮助主题。 2、lookfor命令:如lookfor XYZ 在所有的M文件中查找XYZ关键词。 一、变量 1、Matlab区分大小写;标准函数及命令字母必须小写。 2、命令后加分号,则不显示运算结果。 3、注释以%开头。 4 5、who、whos命令:显示工作空间中的变量清单或列表。 6、clear命令:删除工作空间中的变量。 7、较大矩阵数值的输入:在命令窗口中向一个新变量赋空阵,在工作空间窗口中双击该变 量,打开变量编辑器,填表即可。 8、save命令:把一些变量存储到磁盘文件(.mat),文件名中不能出现后缀。 9、load命令:将文件中的变量调入内存。 10、单个数据的算术运算只是矩阵运算的特例。 11、常用算术运算符:+ - * / \ ^ ( ) 12、关系运算符:< <= > >= == ~=(不等于) 13、逻辑运算符:&(与)、|(或)、~(非) 二、常用数学函数

1、三角函数以弧度为单位。 2、abs函数还可求字符串的ASCII码。 3、这些函数几乎都可以针对向量或矩阵进行运算。 三、数据的输出格式 1、format命令:设置或改变数据输出的格式。其格式符如下: 四、矩阵运算(向量是特殊的矩阵) 1、直接输入法建立矩阵:矩阵元素用方括号括起来,按矩阵行顺序输入各元素,同一行各 元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。如:A=[1,2,3;4,5,6] 2、利用.m文件建立矩阵:即将矩阵的赋值命令写入到一个.m文件中,并运行该文件。 3、利用冒号表达式建立一个向量:A=e1:e2:e3 其中,e1为初始值、e2为步长、e3为终止 值。e2可省略,如A=e1:e3,则步长为1。 4、linspace函数:也可产生一个行向量,如A=linspace(a,b,n) 其中,a为第1个元素, b为最后一个元素,n为元素总数。n可省略,默认产生100个元素。 5、利用已建好的矩阵建立更大的矩阵:如:A=[B,C;C,B]。 6、矩阵元素的引用:如A(3,2)=200 即对矩阵A的第3行第2列的元素赋值为200。若赋值 时给出的下标超出范围,则将对A进行扩展,扩展后的未赋值矩阵元素置0。 7、矩阵按列存储。矩阵元素也可按序号进行引用,如A(2)=100。 8、size函数:如[l,c]=size(A),返回两个元素的向量,分别是矩阵A的行数和列数。 9、sub2ind函数:如sub2ind(size(A),l,c),返回矩阵A的第l行第c列元素的序号。 10、ind2sub函数:如[l,c]=ind2sub(size(A),n),返回矩阵A中序号为n的元素的行列下 标值。 11、length函数:如length(A) 返回矩阵A的行数和列数中的较大者。 12、ndims函数:如ndims(A) 返回A的维数。 13、利用冒号表达式获得子矩阵 ①如A(a,:) 表示矩阵A的第a行的全部元素。 ②如A(:,b) 表示矩阵A的第b列的全部元素。 ③如A(a:b,:) 表示矩阵A的第a行至第b行的全部元素。

(完整版)matlab的一些画图技巧

matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50) 二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图. 基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y的长度 Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y是由计算机自动绘出的. 图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14])

上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title 命令可以加上. 如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例: x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x )曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图. 图4.1.1.2 y=sin(x)的图形 title图形标题 xlabel x坐标轴标注 ylabel y坐标轴标注 text标注数据点

legend 在右上角加解释 文字 grid给图形加上网格 hold保持图形窗口的图形 表4.1.1.1 Matlab图形命令 多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵:

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

matlab技巧

axis([xmin xmax ymin ymax]) 设置当前图形的坐标范围,分别为x轴的最小、最大值,y轴的最小最大值 坐标轴的编辑在figure—edit—axe property中 一、散点图 1.1.命令 plot 功能线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(current axes ColorOrder property)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axes LineStyleOrder property)定义的线型,以区别不同的线条。 用法 plot(X,Y) 当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=[x(i)],Y=[y(i)],则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分。若X,Y均为同维同型实数矩阵,X = [X(i)],Y = [Y(i)],其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i)),矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向

量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。 plot(Y) 若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中x=1:m;若y为实数矩阵,则把y按列的方向分解成几个列向量,而y 的行数为n,则plot(Y)等价于plot(X,Y)其中x=[1;2;…;n];在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。 plot(X1,Y1,X2,Y2,…),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图。若其中仅仅有Xi或Yi是矩阵,其余的为向量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配对的向量画出。 plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…) 将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,和画线用的颜色。在plot 命令中我们可以混合使用三参数和二参数的形式: plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3) plot(…,'PropertyName',PropertyValue,…) 对所有的用plot生成的line图形对象中指定的属性进行恰当的设置。 h = plot(…) 返回line图形对象句柄的一列向量,一线条对应一句柄值。 说明参数LineSpec 功能定义线的属性。Maltab允许用户对线条定义如下的特性: 1.线型 表7-1 2.线条宽度

MATLAB重点归纳

MATLAB重点归纳 1、工作空间窗口、命令窗口、历史命令窗口、开始按钮 2、>> 所在行可输入命令;没有>>所在行显示结果 3、MATLAB常用标点符号的功能(9页) 4、cd 设置当前目录。 eg:要设置当前目录为“C:\MY DIR”:>>cd C:\MY DIR save FileName 变量1 变量2 …参数 %将变量保存到文件中 5、save FileName1 %将变量保存到文件中 save FileName2 a b %将变量a,b保存到文件中 save FileName3 a b –append %将变量a,b添加到文件中 6、load FileName变量1 变量2 … %从数据文件中取出变量存放到工作空间 load FileName1 %把文件中的全部变量装入内存 load FileName2 a b %把文件中的a,b变量装入内存 7、who 查阅MATLAB内存变量名 8、whos 查阅MATLAB内存变量变量名、大小、类型和字节数 9、clear 删除工作空间中的变量 10、i=exist(‘X’) 查询工作空间中是否存在‘X’变量 i=1 表示存在一个变量名为‘X’的变量 i=2 表示存在一个名为‘’的文件 i=3 表示存在一个名为‘’的文件 i=4 表示存在一个名为‘’的文件 i=5 表示存在一个变量名为‘X’的内部函数 i=0 表示不存在以上变量和文件 11、path %列出MATLAB的搜索路径 Path(path,’ C:\MY DIR’) %在MATLAB的搜索路径的末尾添加新目录C:\MY DIR 12、what 列出当前目录下的M、MAT、MEX文件清单 13、dir %列出当前目录下的文件和子目录清单 dir 目录名 %列出指定目录下的文件和子目录清单 14、type 文件名 %显示指定M文件的内容 Type %显示文件的注释内容 15、which %指出M、MAT、MEX文件、工作空间变量、内置函数或Simulink模型所在目录 16、matlabroot %返回安装MATLAB的根目录 1、各种整数数据类型的范围和类型转换函数表(30页) 2、>> a=5; >> b=0; >> c=67; >> u1=uint8(a) %转换成无符号整型 u1 =

matlab使用技巧整理

Title中引入变量 (1) MATLAB简单图像读写 (2) 坐标控制 (5) 显示特殊字符 (5) matlab导出数据(fprintf,dlmwrite,xlswrite) (6) MATLAB取整函数的应用 (11) matlab里有关于集合运算的函数: (12) 线型:颜色线型 (13) 用matlab绘制箭头1 (14) 数组逆序 (16) 模运算 (17) 删除数组中一个或多个元素 (18) matlab中fopen函数在指定文件打开的实例如下: (18) matlab图片保存为eps格式后中文显示乱码 (20) Matlab中digits()与vpa() (22) Title中引入变量 问题描述:我现在i=8,希望在title命令中引用i,以便在图形上能显示出i 的值8 方法:title(['figure ',num2str(i)]); 注意:有两点,一是title中引入中括号[];二是用到函数num2str(i) 推广:在title中引入多个变量,如下: title(['频率f=401.5MHz,障碍物在距离发射天线',num2str(zaw_location),'m处,障碍物高度',num2str(R),'m']); 例子: clear clc theta= 0:pi/20:2*pi; p=1000; e1=0; r1=p./(1-e1.*cos(theta)); l1=min(r1); subplot(1,3,1); polar(theta,r1) title(['1.the minnus distance is ',num2str(l1)]) e2=0.25; r2=p./(1-e2.*cos(theta)); l2=min(r2); subplot(1,3,2); polar(theta,r2) title(['2.the minnus distance is ',num2str(l2)]) e3=0.5;

matlab使用技巧

matlab的默认字体总是helvetica,每次担心会产生字体会和IEEE的字体库产生冲突或者reviewer那边的电脑没有办法打开,上网查了一阵,把这个让人烦又简单的东西干掉了,其实就四句话。以前在画每一个子图的时候,设置一下字体就可以了,省得每一次都点属性设置,烦死了。但是一定要在编辑了标题和label之前,否则就得不偿失了,会把已经输入的东西覆盖掉的。以后又可以省掉一点琐事了。 set(gca,'FontSize',10, 'FontName','Arial') xlabel('test','FontSize',10,'FontName','Arial') ylabel('test','FontSize',10,'FontName','Arial') legend('test','FontSize',10,'FontName','Arial') title('test','FontSize',13,'FontName','Times New Roman') %{ {figure_FontSize=12; set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top'); set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle'); set(findobj('FontSize',12),'FontSize',figure_FontSize); %}这4句是将字体大小改为8号字,在小图里很清晰 %set(gcf,'Position',[100 100 260 220]);%这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是7cm %set(gca,'Position',[.13 .17 .80 .74]);%这句是设置xy轴在图片中占的比例,可能需要自己微调。 %set(findobj(get(gca,'Children'),'LineWidth',,'LineWidth',2);%这句是 将线宽改为2 set(gca, 'Fontname', 'Times newman', 'Fontsize', 12);%设置图片的字体类型和字号大小的。

相关文档
最新文档