今天做图像处理时,看到一个矩阵的处理,简要谈谈下面几段代码:
首先是介绍矩阵(说明:在matlab中无是数组还是矩阵都是按列来存储的) 首先是一些特殊矩阵的建立 zeros(m,n)%建立全0矩阵 ones(m,n)%建立全1矩阵 eye(m,n)%建立对角线全为1 的矩阵 rand(m,n)%(0,1)随机分布的矩阵 randn(m,n)%相比上一个,均值为0,方差为1 magic(m,n)%魔方矩阵 对于矩阵的建立和元素访问,很多和前面介绍的数组相同 下面看图访问矩阵
访问矩阵元素可以用单下标访问和双下标访问
sub2ind()和ind2sub()函数进项访问方式转换; A=[1:4;5:8] ind1=sub2ind(size(A),2,3);%将索引(2,3)转变为单下标索引 [i,j]=ind2sub(size(A),7);
数组相关操作 A=[1 2 3;4 5 6;7 8 9]; B=[9 8 7; 6 5 4; 3 2 1]; a=A(1:2,:)-取A数组第几行元素(这里是第1和2行) a=A(:,1:2)-取A数组第几列元素(这里是第1和2列) a=A(2:4)-取A数组第2个到第4个元素 a=A(1:end)-将元素正序排列 a=A(end:-1:1)-将元素反序排列 a=A([2 4])-取数组A第2个和第4个元素 a=A(1,2)-取数组第一行第一列元素 C=[A B]-将数组AB横向拼接 C=[A; B]-将数组AB纵向拼接
下面几个操作要熟悉,改变数组内容 A(A=1)=100;%将A数组中为1元素全部变为100 A(A>4)=20;%将A数组中大于4的元素都变为20 A(1,1)=10%将A数组里1行1列元素变为10 下面几个函数判断数组类型 isnumeric();%判断是否为数值型数组 isreal();%判断是否为实数型数组 isinteger();%判断是否为整型数组,(matlab默认存储double型) islogical();%判断是否为逻辑型数组 find()函数:查找数组元素然后修改元素,具体见下图
原文链接:https://blog.csdn.net/CV_YOU/article/details/52892673
|
请发表评论