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)
结构类似于单元数组,它们都允许将不同的数据集集成到单个变量中。但与单元数组不同的是,单元数组中的单元由数字寻址,而结构的元素由域来寻址。
第二章结束