数学实验2
萌到你眼炸
571次浏览
2021年01月30日 00:39
最佳经验
本文由作者推荐
党费收缴-消失英文
实验二
MATLAB
编程与作图
13090114
廖红利
一、
实验目的
1.
学会程序设计
2.
学会作图
3.
了解在线帮助和文件管理
二、
实验内容
1.
程序设计
1)
控制流
第一章我们用的指令都是顺序结构的,
对于复杂的计算,
需要循环和分支
等复杂的程 序结构,
MA
TLAB
控制流语法都是以
end
结尾。常用控制流见 如
下表:
MA
TLAB
常用控制流
类型
循环
语句
语法
For
循环变量
=
数组,
指令组;
End
While
条
件
式,
指令组
End
分支
If
条件式
1
,
如果条件式
1
满足,则执行指令组
1
,且结束该
语句
指令组
1
;
语句;否则检查条件式
2
,若满足,执行指令组
Elseif条件式
2
,且结束该语句;
……
若所有条件式都不满足
2
,
,则执行指令组
k
,并且结束该语句,最常用的格式是:
指令组
2
;
If
条件式
……
;
指令组
Else
指令组
k
;
End
End
分支
Sw itch
分支变
若分支变量的取值
1
,则执行指令组
1
,且 结束该语句;若分
语句
量,
支变量的取值
2
, 则执行指令组
2
,且结束该语句;
……
若分
Case
值1
,
指令组
1
,
Case
值
2
,
指令组
2
,
……
,
Otherwise
指令组
k
;
支变量不取所列出的值,则执行指令组
k.
解释
对于循环变量依次取数组中的值,循环执行指令
组直到循环变量遍历数组,数组最常用的形式是
初值:增量:终值。
当条件式满足,循环执行指令组直到条件式不
满足。使用
while
语句要注意避免出现死循环。
End
中断
语句
中断
语句
中断
语句
中断
语句
例如:计算
s
Pause
暂停执行,直到击键盘。
Pause(n)
为暂停
n
秒后再继续。
break
return
中断执行,用在循环语句内表示跳出循环。
中段执行该程序,
Error(
字符串
)
提示错误并显示字符串说明。
n
n
1
100
1
2
2)
M
脚本文件
复杂程序结构在指令窗口调 试保存都不方便所以进行复杂的运算大都使用程序文
件。
MA
TLAB
中最常 见的程序文件是
M
文件。
MA
TLAB
大部分内部函数都是
M
文件,
用户编制程序也通常用
M
文件。
< br>M
文件可分为两类:
M
脚本文件和
M
函数文件。将多条
MA
TLAB
语句写在
编辑器中,并以扩展名
m
的文件保存在适当 的文件夹中,就得到一个
M
脚本
文件。例如,将例
2.1
的几条语句 写在编辑器中,保存为
eg2_1
(
MA
TLAB
会
自动
加
扩
展
名
m
)
,
然
后在
指
令
窗
口
执
行
.
3)
函数文件
M
脚本文件没有参数传递功能,当我们需要修改程序中 的某些变量值,必须
修改
M
文件。利用
M
函数文件可以进行参数传递 ,所以
M
函数文件用得更加广
泛。
M
函数文件以
function
开头,格式为
function[
输出变量
]=
函数名称(输入变量)
语句;
M
函数必须给予输出参数(
output_ar gs
)和输入参数(
input_args
)
。一个
M
函数 可
以有多个输出参数或多个输入参数。编写
M
函数不可以写在指令窗口,必须在编辑器 窗
口中编辑。
M
函数与
M
脚本还有一个深层次的区别:
M< br>函数中的变量为局部变量,在
Workspace
是找不到的。
执行
M
函数一般要在指令窗口以该函数的磁盘文件主名调用,
并
给输入参数赋值。
M
函数也可以被
M
脚本文件或其他
M
文件调用。
注 意:
在
MA
TLAB
中,
使用
M
函数是以该函数的 磁盘文件主名调用,
而不是
文件中的函数名称,为了增强程序可读性,建议两者同名
.
4)
函数句柄、
Inline
函数和匿名函数
M
函数除了直接用其函数名调用之外,也可以作为一个参数那样调用。调用时
使用所谓函数句柄 (
handle
)方式
.
比较简单的函数表达式可以不 用写成外部
M
函数,而是用更简捷的
inline
函数或匿名函
数方 式出现在指令行中,格式为:
fun=inline(
‘
expr
’
,arg1,arg2,
„
)
fun=@(arg1,arg2,... )expr
,
这里
expr
为函数表达式,
arg1,arg2,< br>„为自变量名字符串
利用
MATLAB
数组运算符,
可以将 前面的程序简单写成
Inline
函数,
而不必写
成外部
MATLA B
函数
.
MATLAB
将
Inline
函数弃用,有匿名函数代替。匿名函数不仅简明,而且可以
直接使用
.
5)
其他
1)
注释
< br>为了增强程序的可读性,常常使用注释语句。用
%
开头,对本行后
面字符起作用 ,不参与运算,只起说明作用。
M
文件开头一般应有一段注释,
说明文件的功能和使用 方法,这部分注释使用
help
可以看到。另外,注释符
%
也常用于程序调试 ,把暂不使用的注释起来,使得它不参与运算。
2)
对话
input
在交互式执行程序中用于提示键盘输入,
disp
用于 屏幕显示
.
列:
编写一个脚本文件,
使对键盘提示输入的向量求得元素总和 。
使用注释语
句解释用法。
3)
全程变量与局部变量
M
函数中所有变量为局部变量,
不 进入工作空间,
脚本文件中所有变量执行后进入工作空间,即全程变量。
M
函数变量值 传递主
要通过其输入输出变量,但也可以用
global
定义全程变量,它的意义与工 作空
间变量不同,只对有定义的环境起作用。
4)
nargin,nargout
和
varargin
在
M
函数内,
nargin
表示该函数的输入变量
个数,
nargout
表示该函数的输出变量个数,而
va rargin
表示可变输入
输出变量个数。利用这些格式可以编写更灵活的程序。
5)
子函数和嵌套函数
M
函数中允许使用 子函数和嵌套函数。
M
函数中第
一个
function
为主函数,其 他
function
为子函数。子函数只能被同一文件的
主函数和其他子
函数调用,不能被外部函数调用。在一个函数体内部还可
以定义嵌套函数,这时每个 函数体要用
end
标志结束
.
列:
下面我们个编辑了一个计算y
ax
b
的子函数和嵌套函数的程序,
并用
到
nargin
和
golbal
。当然,这个程序完全没必要编的这么复杂 ,这里纯粹是出
于解释用途。
6)
提高速度
MA
TLAB
软件执行循环语句时速度较慢, 好的
M
程序文件
应尽量使用数组运算和内部函数,
少使用循环语句,
以提高运算速度。
改变数
组尺寸会影响速度,
采取一些预分配方法可提高运算速度。< br>另外,
减少运行过
程中不必要的结果显示也可提高速度
列:编写一个
M
函数,对于任意输入的向量
x
可以计算下列分段函数值构成
的向量 。
x
2
,
x
1
,
f
(
x
)
1
,
1
x
1
,
3
2
x
,
x
1
.
2.
作图
常用的作图指令
主题词
Plot
Fplot
意义
基本二维图
一元函数图
主题词
意义
Zlabel
Clabel
Grid
Hold
Axis
View
Z
轴说明
等高线高度标志
格栅
图形保持
定制坐标轴
改变视点
空间曲线
Plot3
Meshgrid
网络数据生成
网面图
Mesh
曲面图
Surf
Contour
等高线图
Subplot
子图
Contour3
3
维等高线图
Figure
新图形窗口
标题
清除图形
Title
Clf
X
轴说明
关闭图形窗口
Xlabel
Close
Y
轴说明
ylabel
ndgrid
N
维网格数据生成
1)
曲线图
plot(x,y)
作出数据(
x(i),y(i)
)为结点的折线图, 其中
x,y
为同长度的向量
plot(x1,y1,x2,y2,
„
)
同时作多条折线,分别由向量 对(
x1,y1
)
,(x2,y2),
„构成
fplot(fun,[a,b])
作出函数
fun
在区间
[a,b]
上的函数图
plot3(x,y,z)
空间曲线图,其中
x,y,z
为同长度的向量
图形元素设定
颜色
标记
B
蓝(默认)
无标题(默认)
G
绿
R
红
C
青
M
洋红
Y
黄
K
黑
W
白
.
点
。
圈
叉
+
十字
*
星
S
方块
D
菱形
V
下三角形
上三角形
<
左三角形
>
右三角形
P
五角形
H
六角形
3
列:
两个一元函数
y
x
x
1
和
y
x
0
.2
线型
—
实线(默认)
:
虚线
—
.
点划线
——
划线
sin(
5
x
)
在区间
-1
2)
曲面图
[x,y]=meshgrid(xa,ya)
当
xa,ya
分别为
m
维和
n
维行向量,得到x
和
y
均为
n
行
m
列矩
阵
meshgrid
常用于生成
X-Y
平面上的网格数据,也可用于三维网格数据生成
[x,y]=ndgrid(xa,ya)
与
meshgrid
类似,但得到的
x
和
y
均为
m
行
n
列矩阵。
ndgri d
还可
用于
3
维以上的网格
mesh(x,y,z)
绘制网页面,是最基本的曲面图形指令,其中
x,y,z
是同阶矩阵,表示曲面
三维数据
surf(x,y,z)
绘制曲面图,与
mesh
用法类似
contour(x,y,z)
绘制等高线图,与
mesh
用法类似
contour3(x,y,z)
绘制三维等高线图,与
mesh
用法类似
列:二元函数图
z
x
exp(
x
2< br>
y
2
)
。
3)
图形说明和定制
title(
‘字符串’
)
图形标题说明
xlabel,ylabel,zlabel
用法类似于
title
,分别说明坐标轴
x,y,z
text(x,y,
’字符串’
)
在
2
维图形指定位置(
x,y
)处加文本字符串
text(x,y,z,
’字符串’
)
在
3
维图形指定位置(
x,y,z
)处加文本字符串
grid on/off
显示
/
不显示格栅
box on/off
使用
/
不使用坐标框
hold on/off
保留
/
释放现有图形
axis off/on
不显示
/
显示坐标轴
axis([a,b,c,d])
定制
2
维坐标轴范围
a
定制
3
维坐标轴范围
a
开一个新图形窗口
close
关闭现有图形窗口
subplot(m,n,k)
将图形窗口分为
m*n
个子图,并指向第
k
幅图
legend(str1,str2,
„
)
图例,字符串
str1,str2,
„依次为各图形对象说明
列:绘制由参变量函数表示的空间曲线