数字图像处理matlab版第二章

来源:互联网 发布:dotacoko淘宝 编辑:程序博客网 时间:2024/06/05 06:13

operation(A,dim) A是一个数组,dim是一个标量。k=size(A,1)该命令给出A的行数。

ndims函数给出数组A的维数,d=ndims(A)。

zeros(M,N)生成一个大小为M×N的double类矩阵,其元素均为0。

ones(M,N)生成一个大小为M×N的double类矩阵,其元素均为1。

ture(M,N)生成一个大小为M×N的logical类矩阵,其元素均为1。

false(M,N)生成一个大小为M×N的logical类矩阵,其元素均为0。

magic(M)生成一个大小为M×N的‘魔术方阵’。在该方阵中,每一行中的元素之和,每一列中的元素之和以及主对角线中的元素之和均相等。

rand(M,N)生成一个M×N的矩阵,矩阵中的元素都是在区间[0,1]中均匀分布的随机数。

randn(M,N)生成一个大小为M×N的矩阵,矩阵中的元素是正态分布的随机数,随机数的均值为0,方差为1。

M函数编程简介

函数定义行的形式为:function[outputs]=name(inputs),如计算两幅图像的和与积的函数的形式为 function[s,p]=sumprod(f,g),s是和图像,p是积图像,f和g是输入图像。

H1行是一个文本行,它是单个注释行,其前面的为函数定义行。%aaaaa。

创建M文件的另一种方法是在提示符外使用edit函数。>>edit sumprod。

matlab的运算符可以分为三类:执行数值计算的计算算术运算符,在数量上比较操作数的关系运算符。执行函数AND、OR和NOT的逻辑运算符。

A*B表示传统意义上的矩阵乘法,而A.*B则表示数组乘法。

xor(异或) 若两个操作数逻辑上不同,则函数xor返回1;否则,返回0。

all 若一个向量中的所有元素都为非零,则函数all返回1;否则,返回0。

any 若一个向量中的任何元素都非零,则函数any返回1;否则,返回0。该函数在矩阵中按列操作。

n=numel(A)直接获得数组中的元素个数。若A是一副图像,则numel(A)将给出它的像素数。

Matlab中图像的原点在(1,1)处。

代码优化:向量化循环和预分配数组。

向量化意味着简单地将for循环和while循环转换为等价的向量或矩阵运算。

预分配数组是预先创建有着适当维数的数组。

交互式I/O

函数disp用来在屏幕上显示信息,disp(argument)。若argument是一个数组,则disp显示数组的内容。

函数input用于将数据输入到M函数,其基本语法为t=input('message')

str2num函数将串的元素(作为字符处理)转换为double类数字。n=str2num(t)。

若输入中既有字符又有数字,则可以利用strread函数。[a,b,c,...]=strread(cstr,'format',param','value')。

%f和%q,分别表示浮点数和字符串。

Matlab中的单元数组是一个多维数组,其元素是其他数组元素的副本。例如,单元数组 c=('gauss',[1 0;0 1],3)

结构类似于单元数组,它们都允许将不同的数据集集成到单个变量中。但与单元数组不同的是,单元数组中的单元由数字寻址,而结构的元素由域来寻址。

第二章结束


阅读全文
0 0