第一部分
一 matlab 基础知识
1 数值的表示
Matlab 的数只采用习惯的十进制表示,可以带小数点和负号;其缺省的数据类型为双精度浮点型
(double)。
-10
0.001
1.3e10
例如:3
变量命令规则
变量名、函数名对字母的大小写是敏感的。如 myVar 与 myvar 表示两个不同的变量。
变量名第一个字母必须是英文字母。
1.256e-6
变量名可以包含下英文字母、划线和数字。
变量名不能包含空格、标点。
变量名最多可包含 63 个字符(6.5 及以后的版本)
2 数组的分类
一维数组,也称为向量(vector) 。
行向量(row vector)、列向量(column vector)。
二维数组(矩阵 matrix)。
多维数组。
有效矩阵:每行元素的个数必须相同,也就是说其每列元素的个数耶也必须相同。
(1)创建一维数组变量
方法 1 使用方括号“[ ]”操作符。 例如 A[1 2 3]
方法 2 使用冒号“:”操作符 例如 B=1:10
方法 3 利用函数 linspace 例如 a=linspace(1 ,2, 5)
方法 4 利用函数 logspace
方法 5 (3) 利用已有的矩阵剪裁方法创建向量。
列向量的创建
使用方括号“[ ]”操作符,使用分号“;”分割行
使用冒号操作符
创建数组变量的一般方法
创建变量的赋值语句的一般格式
var=expression
var 为变量名
expression 为 MATLAB 合法表达式
可以是单独的常数值或数值数组;
也可以由常数值、其他变量(部分或全部)、数值数组和运算符(+、-等)构成。
创建二维数组变量
第一种方法:使用方括号“[ ]”操作符
“[ ]”操作符创建二维数组的使用规则
数组元素必须在“[ ]”内键入;
行与行之间须用分号“;” 间隔,也可以在分行处用回车键间隔;
行内元素用空格或逗号“,”间隔。
函数方法
函数 ones(生成全 1 矩阵)、zeros (生成全 0 矩阵) 、reshape
元素的寻访
a(3:-1:1) %由前 3 个元素倒序构成的子数组
修改 a([2 5])=[1 1]
A(end,:) 表示最后一行;a(:,end)表示最后一列
例子:a=[1 2 3 4 ;5 6 7 8]
1 A(:,end)
3
6
2 a(end,:)
4 5 6
3 a(:,end:-1:3)
3
6
4 a(:,end:-1:2)
3 2
6 5
5 a([1 2])
1
6 a(end,[2:end-1])
5
3 运算:算数 关系 逻辑
4
二 matlab 二维绘图
多次叠绘
多次调用 plot 来在一幅图上绘制多条曲线,需要 hold 指令的配合。
hold on 保持当前坐标轴和图形,并可以接受下一次曲线绘制。
hold off 取消当前坐标轴和图形保持,这种状态下,调用 plot 绘制完全新的图形,不保
留以前的坐标格式、曲线。
subplot(m, n, k) 使(mxn)幅子图中第 k 个子图成为当前图
画出分格线
不画分格线
使当前坐标呈封闭形式(MATLAB 的缺省设置)
使当前坐标呈开启形式
A、 分格线与 grid 指令
grid on
grid off
MATLAB 的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改
变分格线的疏密)。
B、 坐标框
box on
box off
C、刻度设置
指令及格式:
set(gca, ‘xtick’, xs, ‘ytick’, ys)
xs、ys 可以使任何合法的实数向量,用于分别设置 x、y 轴的刻度。图形标识包括:
图名(title)
坐标轴名(xlabel、ylabel)
图形文本注释(text)
图例(legend)
六 绘图
第二部分
>> t=0:0.5:10;
>> y1=exp(-0.1*t);
>> y2=exp(-0.2*t);
>> y3=exp(-0.5*t);
>> plot(t,y1,'-ob',t,y2,':*r',t,y3,'-.^g')
>> title('\ity\rm=e^{-\itat}')
>> title('\ity\rm=e^{-\itat}','FontSize',12)
>> text(t(6),y1(6),'\leftarrow\ita\rm=0.1','FontSize',11)
>> text(t(6),y2(6),'\leftarrow\ita\rm=0.2','FontSize',11)
>> text(t(6),y3(6),'\leftarrow\ita\rm=0.5','FontSize',11)
>> title('\ity\rm=e^{-\itat}','FontSize',12)
>> legend('a=0.1','a=0.2','a=0.5')
3 简述题
1 matlab 是一种什么样的软件,其主要特点有哪些?
答:MATLAB 已经发展成为一个世界顶级的、功能强大的、易学易用的、综合数学工具软
件。
它以高效的数组运算为特征;
它集符号运算与数值运算于一体,以数值计算见长;
以函数形式内迁了许多优化的数学算法;
具有众多不同领域的专用工具箱;
不领域的系统建模、仿真、分析以及嵌入式系统的快速开发。
应用广泛(工程、科研、大学教学)
包括多个软件产品:
Matlab
Matlab 专用工具箱(Toolbox)
Matlab 编译器
Simulink
Simulink 专用模块库(BlockSet)
语言特点:功能强大
数值运算优势
符号运算优势(Maple)
强大的 2D、3D 数据可视化功能
许多具有算法自适应能力的功能函数
语言简单、内涵丰富
语言其书写形式非常接近于常规数学书写形式;
其操作和功能函数指令就是常用的计算机和数学书上的一些简单英文单词表达的,如:help、
clear 等;
完备的帮助系统,易学易用。
扩充能力、可开发能力较强
MATLAB 完全成了一个开放的系统
用户可以开发自己的工具箱
可以方便地与 Fortran、C 等语言接口
编程易、效率高
Matlab 以数组为基本计算单元
具有大量的算法优化的功能函数
2 Matlab 脚本程序文件的特点?函数程序文件的特点?
M 文件有两种形式 :脚本文件(Script File)函数文件(Function File )
这两种文件的扩展名,均为“ . m” 。M 脚本文件(Script File)
—— 实际上是一串 MATLAB 指令集合。
M 脚本文件的特点:
脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)
MATLAB 指令集。脚本文件运行后 ,所产生的变量都驻留在 MATLAB 基本工作空间(Base
workspace)中。只要用户不使用清除指令(clear), MATLAB 指令窗不关闭,这些变量将
一直保存在基本工作空间中。
M 函数文件的特点:
从形式上看 ,与脚本文件不同 ,函数文件的笫一行总是以 “function”引导的“函数申明
行”。从运行上看 ,与脚本文件运行不同 ,M 函数中使用的变量都是局部变量,即在该函
数返回之后,这些变量会自动在 MATLAB 的工作空间中清除掉。
3 试举例查看 matlab 工作空间内变量的命名
4 在 matlab 运行环境下,获取在线帮助的命令有哪些?
6 数组运算与矩阵运算的运算符有什么区别?
在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的
运算符前加一个点即为数组运算,如 a*b 为矩阵乘,a.*b 为数组乘
当然有区别,最基本的区别说是运算加不加点的问题,详细如下。
一维数组相当于向量,二维数组相当于矩阵.所以矩阵是数组的子集
数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有
特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运
算符前特别加了一个点。
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算是一致的。但
有两点要注意:
(1)对于乘法、乘方和除法等三种运算,矩阵运算与数组运算的运算符及含义都
不同:矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,
使用点运算符;
(2)数与矩阵加减、矩阵除法在数学是没有意义的,在 MATLAB 中为简便起见,
定义了这两类运算
数组运算:
转置 A.' 非共轭转置,相当于(conj(A'))
数组加与减 A+B 与 A-B 对应元素之间加减
数乘数组 k.*A 或 A.*k k 乘 A 的每个元素
数与数组加减 k+A 与 k-A k 加(减)A 的每个元素
数组乘数组 A.*B
数组乘方 A.^k
A 的每个元素进行 k 次方运算
k.^A 以 k 底的,分别以 A 的元素为指数求幂值
数除以数组 k./A 和 A.\k
数组除法 左除 A.\B 右除 B./A
k 分别被 B 的元素除
矩阵运算:
矩阵转置 A' 共轭转置
加减 A+B A-B
数乘矩阵 k*A 或 A*k 上三项同数组运算
矩阵乘法 A*B 按数学定义的矩阵乘法规则
矩阵乘方 A^k
数与矩阵加减 k+A 与 k-A 等价于 k*ones(size(A))+-A
矩阵除法 左除 A\B,右除 B/A 分别为 AX=B 和 XA=B 的解
7 matlab 程序控制结构有哪些?试简述其中一种结构。
k 个矩阵 A 相乘