在命令窗口输入:clear 清除所有的变量,workspace为空;clear +变量名:清除指定变量
( )小括号,用于引用数组的元素;[ ] 中括号用来构建向量或者是矩阵;{ } 大括号,用于cell型的数组的分配或引用
生成n*n的方阵,对角线上的元素为1,其他都为0
disp()函数直接将内容输出在Matlab命令窗口中:
1.输出字符串: >>disp('hello word!') hello word! 2.输出矩阵: >> A=(1:5); >> disp(A) 1 2 3 4 5 3.同时输出字符串和数字: >> disp(['hello word =',num2str(A)]) hello word =1 2 3 4 5tic函数会记录起始时刻,toc函数会自动计算时间差
tic %记录开始时间 for k=1:100 s=sum(k); end toc%记录结束时间1.size:获取数组的行数和列数 s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。 [r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量 2.sum() sum(A,dim),若A为行向量时,如果不指定dim或指定dim为1,则对列向量求和,计算结果为一个行向量,指定dim为2,则自动计算成所有行向量数值的和
>> B=sum([1,2;2,4;3,6]); >> B B = 6 12 >> B=sum([1,2;2,4;3,6],2); >> B B = 3 6 93.length:数组长度(即行数或列数中的较大值) n=length(A):如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。n=max(size(A):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数
>> B=length([1,2;2,4;3,6]); >> B B = 34.numel:元素总数 n=numel(A)该语句返回数组中元素的总数
>> B=numel([1,2;2,4;3,6]); >> B B = 6计算样本集中多个样本两两之间的距离矩阵,dist(pos)输入一个参数,pos——N×S的神经元位置矩阵,返回S×S的距离矩阵,A=[1,2;2,3;3,5;4,2];A1=A’,B=dist(A1),注意要先对A进行转置
B= 0 1.4142 3.6056 3.0000 1.4142 0 2.2361 2.2361 3.6056 2.2361 0 3.1623 3.0000 2.2361 3.1623 0B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p…]) 矩阵复制函数,把矩阵A看作一个整体元素,重新生成MxN的矩阵B:A = repmat(1:4, 3, 1),向量[1,2,3,4]作为一个变量生成一个3行一列的矩阵
A = 1 2 3 4 1 2 3 4 1 2 3 4B=reshape(A,[m,n]) 矩阵重排函数,先把矩阵A按列排列,对这个向量每隔m间隔取一个元素,重新生成一个大小为m*n的B向量:A =[1:6;7:12],按列排成[1,7,2,8,3,9,4,10,5,11,6,12],每隔3个数取值形成4个值一行的向量
A = 1 2 3 4 5 6 7 8 9 10 11 12 B = reshape(A,[3,4]) 1 8 4 11 7 3 10 6 2 9 5 12创建稀疏矩阵函数 用法1:B=sparse(A):将矩阵A转化为稀疏矩阵的形式,即矩阵A中任何零元素去除,非零元素及其下标(索引)组成矩阵B
A= 0 2 0 4 0 6 7 0 0 B=sparse(A)= (2,1) 4 (3,1) 7 (1,2) 2 (2,3) 6用法2:S = sparse(i,j,s,m,n,nzmax)——由i,j,s三个向量创建一个m*n的稀疏矩阵(上面的B矩阵形式),并且最多含有nzmax个元素
B=sparse([1,2,3],[1,2,3],[0,1,2],4,4,4) B = (2,2) 1 (3,3) 2 Z =full(B) 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0其中i=[1,2,3],稀疏矩阵的行位置;j=[1,2,3],稀疏矩阵的列位置;小s=[0,1,2],稀疏矩阵元素值, 其位置为一一对应m=4(>=max(i)),n=4(>=max(j)) (注:m和n的值可以在满足条件的范围内任意选取),用于限定稀疏的大小。nzmax=4(>=max(i or j)),稀疏矩阵最多可以有nzmax个元素。一些简写的情况: S = sparse(i,j,s,m,n)——nzmax = length(S) ; S = sparse(i,j,s)——使m = max(i) 和 n = max(j),在S中零元素被移除前计算最大值,[i j s]中其中一行可能为[m n 0];full函数把稀疏矩阵转为全矩阵
矩阵对角元素的提取和创建对角阵。 v为向量则创建对角阵:设以下X为方阵,v为向量 X = diag(v,k),当v是一个含有n个元素的向量时,返回一个n+abs(k)阶方阵X,向量v在矩阵X中的第k个对角线上, k=0表示主对角线 k>0表示在主对角线上方 k<0表示在主对角线下方
>> v=[1 2 3]; diag(v, 2) ans = 0 0 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0X为矩阵则提取对角元素:v = diag(X,k)返回列向量v,v由矩阵X的第k个对角线上的元素形成
B = spdiags(A)从m- n矩阵中提取所有非零对角线A。B是一min(m,n)列p矩阵,其列是p非零对角线A。 [B,d] = spdiags(A)第一个输出的列B包含非零对角线A。第二个输出d列出了非零对角线的索引A B = spdiags(A,d)提取指定的对角线d A = spdiags(B,d,A)替换由d列指定的对角线B,输出稀疏矩阵 A = spdiags(B,d,m,n)创建一个m-by- n通过取的列的稀疏矩阵B和将它们沿着由指定的对角线d
%S对角线上的值取0 n = size(S, 1); B = full(spdiags(diag(S), 0, n, n)); S = S - B;imhist( i );直接显示图像i的灰度直方图; imhist(i,n)n为指定灰度级显示直方图; [count, x] = imhist( i ) 获取直方图信息,count为每一级灰度像素个数,x为灰度级
返回一个和A大小相同的L矩阵,包含了标记了A中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。 8连通:一个像素如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通:如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通 用途:图像分割提取分割区域