Matlab 数字图像处理
1、Matlab R2017b 简介
1.1、Matlab 软件环境
1.1.1、软件界面
1.1.2、Matlab 命令与程序
可以在 >> 提示符后面输入简单的算式,如 5*3-2;或带有函数的算式,如 sin(pi/2)*sqrt(3)/2:
>> 5*3-2
ans =
13
>> sin(pi/2)*sqrt(3)/2
ans =
0.8660
这样的输入形式实际上是 Matlab 命令,而如果在每行命令的结尾输入半角分号,命令窗口不会立即显示命令执行结果,而会将结果保存到工作区中。如下:
新建文件,从而来创建一个 Matlab 程序。在 Matlab 程序中,使用 % 表示注释。
1.1.3、跨行语句
Matlab 还允许将同一条语句分割在多行中书写以方便较长语句的阅读,方法是在行末使用 3 个半角圆点。如:
>> z = 2 .* x + exp(x .^ 2 + y .^ 2 - sqrt( 1 - log (x) - loy (y) ) ) ...
-y .* sqrt(t) - x .* sqrt(t);
1.2、文件操作
默认情况下,Matlab 可以自动搜索到当前目录和 Matlab 的路径变量 path 中所含目录下面的文件。对处在这些位置可由 Matlab 执行的文件,直接在命令窗口中键入文件名即可运行。如果需要直接运行其他目录下的文件,就要使用 addpath 和 genpath 等命令向路径列表中添加路径。
1.2.1、addpath 函数
addpath 函数向 path 变量中加入指定的目录路径,其原型如下:
addpath('dir','dir2','dir3'...'-flag')
该函数可接受任意数目的参数。
参数说明:
-
dir、dir2、dir3 等为要加入的目录路径,这些变量必须是绝对路径;
-
flag 参数可以用来指定函数的行为,它是可选参数,其取值的含义如下:
合法取值 含义 0 或者 begin 这些路径将被添加到搜索列表的最前面,这些目录中的文件将先于原列表中的同名文件被找到从而执行(优先执行)。往往用于需要修改系统某一命令行为的场合 1 或者 end 这些路径将被添加到搜索列表的最后面,这样可避免用户 M 文件覆盖系统 M 文件 省略 同 0
1.2.2、genpath 函数
genpath 函数生成包含指定目录下所有子目录的路径变量,其原型如下:
p = genpath('directory');
参数说明:
- 参数 directory 为指定的目录。
返回值
- 函数返回包含指定目录本身和其全部子目录的数据。返回值可以直接提供给 addpath,从而直接添加了一个目录及其全部子目录到当前路径列表中。通过这样的方式可以方便地调用我们自己的程序工具箱。
1.2.3、打开与编辑 M 文件
如果需要编辑某 M 文件,就可以使用 open 命令和 edit 命令,它们的调用形式如下:
open filename
edit filename
1.3、在线帮助的使用
-
help 命令
用于查看 Matlab 系统或 M 文件内置的在线帮助信息。命令格式如下:
help command-name
-
doc 命令
用于查看命令或函数的 HTML 帮助,在浏览器中打开:
doc function-name
-
lookfor 命令
当忘记命令或函数的完整拼写时,可以使用 lookfor 命令查找当前目录和自动搜索列表下所有名字当中含有所查内容的函数或命令。其调用格式如下:
lookfor keyword
-
F1 命令打开帮助浏览器
1.4、变量的使用
使用前一定要赋值,无须事先定义。变量的命名大小写敏感。
1.4.1、变量的赋值
赋值使用 “=”,变量定义时不需要显示地指明类型。默认对数字的存储类型为 double 型或 double 型数组,而字符的存储类型为 char 型,字符串的存储类型为 char 型数组。
对于字符串赋值,需要用半角单引号 ‘’ 括起来。
1.4.2、内部变量
自定义变量不要与这些变量同名。
特殊变量 | 说明 |
---|---|
ans | 默认的结果输出变量 |
pi | 圆周率 |
Inf 或 inf | 无穷大值,如 1/0 |
i 和 j | 单位虚数值 |
eps | 浮点运算的相对精度 |
realmax | 最大的正浮点数 |
realmin | 最小的正浮点数 |
NaN 或 nan | 不定量,如 0/0 |
nargin | 函数输入参数个数 |
nargout | 函数输出参数个数 |
lasterr | 最近的错误信息 |
lastwarning | 最近的警告信息 |
computer | 计算机类型 |
version | Matlab 版本 |
1.4.3、查看工作区中的变量
使用 who 和 whos 命令可以查看所有当前工作区中变量的情况。使用 clear 或 clear all 命令可以清除工作区中所有的变量定义,也可以在 clear 后面加上变量名清除特定的变量定义。另外,clc 命令可以用来清屏,所以这两个命令常常用在 M 文件的开头用来构造一个干净的工作区。
>> a = 1; %定义一个数值型变量 a
>> str = 'hello'; %定义了一个字符串变量(字符数组)
>> v = [3 2 1] %定义了一个数值型向量
v =
3 2 1
>> whos
Name Size Bytes Class Attributes
a 1x1 8 double
ans 1x1 8 doub