. 常用基本指令
1.1 变量管理指令
1.1.1 save FileName 变量1 变量2 ... 参数
|- 将工作空间中的数据存放到MAT数据文件
|- 变量1、变量2可以省略,省略时则保存工作空间的所有变量;参数为保存的方式,有-ASCII、-append等方式。
1.1.2 load FileName 变量1 变量2...
|- 从数据文件中取出变量存放到工作空间
|- 变量1、变量2可以省略,省略时装载所有的变量。
1.1.3 who
|- 查阅MATLAB内存变量名(工作空间中的变量)。
1.1.4 whos
|- 查阅MATLAB内存变量名(工作空间中的变量)、大小、类型和字节数。
1.1.5 clear 变量名1 变量名2 ...
|- 删除工作空间中的变量
|- 变量名1、变量名2可以省略,省略时删除所有的变量。
1.1.6 i=exist('X')
|- 查询工作空间中是否存在某个变量
|- i=1:表示存在一个变量名为‘X’的变量;
|- i=2:表示存在一个名为‘X.m’的文件;
|- i=3:表示存在一个名为‘X.mex’的文件;
|- i=4:表示存在一个名为‘X.mdl’文件;
|- i=5:表示存在一个名为‘X’的内部函数;
|- i=0:表示不存在以上的变量或者文件。
1.2 帮助指令
1.2.1 help topic
|- 显示MATLAB命令和M文件的帮助信息
1.2.2 lookfor topic 参数
|- 在所有的帮助条目中搜索关键字,常用来查找具有某种功能而不知道准确名字的命令
|- 当参数为‘-all’时,则在所有的M文件中搜索关键字。
1.2.3 doc topic
|- 打开并显示帮助窗口。
1.3 文件管理命令
1.3.1 what
|- 列出当前目录下的M、MAT、MEX文件清单。
1.3.2 dir 文件名
|- 显示指定M文件的内容。
1.3.3 which 文件名
|- 指出M文件、MEX文件、MAT文件、工作空间向量、内置函数或Simulink模型所在的目录。
1.3.4 matlabroot
|- 返回安装MATLAB的根目录。
.1 基本数据类型
2.1.1 浮点型:有两种,分别为single(单精度)和double(双精度)。
2.1.2 字符型:使用单引号('')括起来,以ASCII码形式存储,每个字符占2个字节。
2.1.3 逻辑型:表示true(1)和false(0),每个逻辑型数据占1个字节。
2.1.4 复数:使用i和j表示虚数单位,包括实部(real)、虚部(imag)、幅值(abs)和相角(angle)。
2.1.5 特殊变量:
|- ans:默认的运算结果变量名;
|- pi:圆周率;
|- eps:计算机的最小数;
|- flops:浮点运算数;
|- inf:无穷大,如1/0;
|- Nan或者nan:非数,如0/0、∞/∞、0×∞;
|- i或者j:虚数;
|- nargin:函数的输入变量数目;
|- nargout:函数的输出变量数目;
|- realmin:最小的可用正实数;
|- realmax:最大的可用正实数。
2.2 矩阵输入
2.2.1 from:step:to
|- from、step和to分别表示开始值、步长和结束值。当step省略时默认为step=1。
2.2.2 linspace(a,b,n)
|- 用来生产线性等分向量,a、b、n分别表示开始值、结束值和元素个数,如果n省略则默认为100。
2.2.3 logspace(a,b,n)
|- 用来生成对数等分向量,a、b、n分别表示开始值、结束值和元素个数,如果n省略则默认为50。
2.3 特殊矩阵
2.3.1 zeros(m,n)
|- 产生m×n的全0矩阵,只有一个参数时,产生方阵。
2.3.2 ones(m,n)
|- 产生m×n的全1矩阵,只有一个参数时,产生方阵。
2.3.3 rand(m,n)
|- 产生均匀分布的随机矩阵,元素取值范围为0.0-1.0,只有一个参数时,产生方阵。
2.3.4 randn(m,n)
|- 产生正态分布的随机矩阵,只有一个参数时,产生方阵。
2.3.5 magic(n)
|- 产生n阶魔方矩阵(矩阵的行、列和对角线上的元素之和相等)。
2.3.6 eye(m,n)
|- 产生m×n的单位矩阵,只有一个参数时,产生方阵。
2.3.7 true(m,n)、false(m,n)
|- 产生逻辑矩阵,分别全为true和false,只有一个参数时,产生方阵。
矩阵表示法:
2.4.1、矩阵的行下标和列下标表示法:
|-通过行下标和列下标来表示矩阵中的元素。
2.4.2、矩阵的单下标表示法:
|-将矩阵的所有列按先左后右的顺序连接成“一维长列”,然后对元素进行编号。
子矩阵的产生方式:
2.5.1、a([1 3],[2 3]):
|-取出行数为1、3,列数为2、3的元素构成子矩阵。
2.5.2、a(1:3,2:3):
|-取出行数为1-3,列数为2-3的元素构成子矩阵。
2.5.3、a(:,3):
|-取出所有的行数,列数为3的元素构成子矩阵。
2.5.4、a(1:3,end):
|-取出行数为1-3,最后一列的元素构成子矩阵。
2.5.5、a([1 3;2 6]):
|-取出下标为1、3、2、6的元素构成子矩阵。
2.5.6、逻辑矩阵产生法:
|-逻辑矩阵的大小需和原矩阵相同,取逻辑矩阵不为0的元素对应的元素构成子矩阵。
矩阵的赋值:
2.6.1、全下标方式:
|-A(i,j)=B,给A矩阵的部分元素赋值,则B矩阵的行列数必须等于A矩阵的行列数。
2.6.2、单下标方式:
|-A(s)=b,b为向量,元素的个数必须等于A矩阵的元素的个数。
2.6.3、全元素方式:
|-A(:)=B,给A矩阵的所有元素赋值,则B矩阵的元素总数必须等于A矩阵的元素总数,但行列数不一定相等。
2.6.4、生成大矩阵:
|-通过[]将小矩阵联结起来可以生成一个较大的矩阵。
矩阵的翻转:
2.7.1、triu(X):
|-产生X矩阵的上三角矩阵,其余元素补0。
2.7.2、tril(X):
|-产生X矩阵的下三角矩阵,其余元素补0。
2.7.3、flipud(X):
|-使矩阵X沿水平轴上下翻转。
2.7.4、fliplr(X):
|-使矩阵X沿垂直轴左右翻转。
2.7.5、flipdim(X,dim):
|-使矩阵X沿特定的轴翻转,dim=1时,按行维翻转;dim=2时,按列维翻转。
2.7.6、rot90(X):
|-使矩阵X逆时针旋转90°。
.8、字符串处理函数
2.8.1、char返回字符,ischar返回1表示为字符串
2.8.2、class还可以用于测试其他数据类型
2.8.5、strcmp(x,y)比较字符串x和y的内容是否相同,返回值为1表示相同,为0表示不同
2.8.6、findstr(x,x1)寻找在某个长字符串x中的子字符串x1,返回其起始位置
2.8.7、deblank(x)删除字符串末尾的空格
2.8.8、eval(x)执行字符串,可将字符串转换成为数字型
2.8.9、disp(x)显示字符串内容
2.8.10、str2mat、strvcat、char构造字符串矩阵,不必考虑每行的字符数是否相等,总是按照最长的字符串进行设置,不足的字符串的末尾将用空格补齐。
2.9、常用矩阵运算函数
2.9.1、det(x)计算方针的行列式
2.9.2、rank(x)求矩阵的秩
2.9.3、inv(x)求矩阵的逆阵
2.9.4、[v,d]=eig(x)计算矩阵的特征值和特征向量,v为特征向量,d为特征值
2.9.5、diag(x)产生x矩阵的对角阵
2.9.6、[l,u]=lu(x)方阵分解为一个准下三角方阵和一个上三角方阵的乘积
2.9.7、[q,r]=qr(x)m×n阶矩阵x分解为一个正交方阵q和一个与x同阶的上三角矩阵r的乘积。
2.10、矩阵和数组的算术运算
2.10.1、加减法矩阵和数组的加减法运算规则一致,必须大小相同才可以相加减
2.10.2、乘法矩阵的乘法A*B,矩阵A的列数必须等于矩阵B的行数;数组的乘法A.*B,表示数组A和B中的元素依次相乘。
2.10.3、除法A\B是方程A*X=B的解,即A\B=A-1 * B;A/B是方程X*A=B的解,即A/B=A*B-1;A.\B表示数组的左除,即B除A;A./B表示数组的右除,即A除B。
.10、矩阵运算
2.10.5、数组的乘方:A.^B
|-A为矩阵,B为标量时,将A(i,j)自乘B次;
|-A为矩阵,B为矩阵时,A和B数组必须大小相同,则将A(i,j)自乘B(i,j)次;
|-A为标量,B为矩阵时,将A^B(i,j)构成新矩阵的第i行低j列元素。
2.10.6、转置
|-A’表示矩阵A的转置,如果A为复数矩阵,则为共轭转置
|-A.’表示数组A的转置
2.11、矩阵和数组的数学函数
2.11.1、基本数学函数:分别对每一个元素进行运算
|-sin、cos、tan、asin、acos、atan、atan2、sinh、cosh、tanh、sqrt
2.11.2、abs
|-绝对值或者复数求模函数,也是分别对每一个元素进行运算
2.11.3、复数相关函数
|-real、imag
|-conj用于求解复数共轭
2.11.4、近似函数
|-rat:有理数近似
|-round:四舍五入到整数
|-fix:向最接近0取整
|-floor:向最接近-∞取整
|-ceil:向最接近+∞取整
2.11.5、其他常用数学函数
|-sign:符号函数
|-mod:模数求余
|-rem:求余数留数
|-log:以e为底的对数(自然对数)
|-log10:以10为底的对数
|-pow2:2的幂
|-bessel:贝塞尔函数
|-gamma:伽马函数
2.11.6、特殊的矩阵函数
|-expm、logm、sqrtm:均以矩阵为对象操作,而不是操作矩阵中的元素
|-funm(a,‘fun’):a必须为方阵,fun为函数名
|-例如:funm(a,‘sqrt’)等价于sqrtm(a)
2.12、关系运算符与逻辑运算符
2.12.1、关系运算符:
|-关系操作符<、<=和>、>=仅对参加比较变量的实部进行比较,而==和~=同时对实 部和虚部进行比较
2.12.2、逻辑运算符:
|-通用型:&、|、~(非)、xor(异或)
|-先决型:&&(先决与)、||(先决或)。只能用于标量的运算。
2.13、常用的关系逻辑函数
2.13.1、all(a)
|-判断a的列向量元素是否全非0,全非0则为1
2.13.2、any(a)
.13 向量操作
2.13.1 iszero(a)
|-判断向量a中是否有非0的元素,有则为1
2.13.2 isequal(a,b)
|-判断向量a,b对应元素是否完全相等,相等为1(按全下标方式比较)
2.13.3 isempty(a)
|-判断向量a是否为空矩阵,为空则为1,否则为0
2.13.4 isfinite(a)
|-判断向量a的各个元素值是否为有限值,是则为1
2.13.5 isnumeric(a)
|-判断向量a中的元素是否全为数值型元素,是则为1
2.13.6 isinf(a)
|-判断向量a的各个元素值是否为无穷大,是则为1
2.13.7 isnan(a)
|-判断向量a的各个元素值是否为NAN,是则为1
2.13.8 isreal(a)
|-判断向量a中的元素是否全为实数,是则为1
2.13.9 isprime(a)
|-判断向量a中的各个元素值是否为素数(质数),是则为1
2.13.10 isspace(a)
|-判断向量a中的各个元素是否为空格,是则为1
2.13.11 find(a)
|-寻找向量a中非0元素的下标(按照单下标方式查找)
2.14 运算符的优先级
2.14.1 运算符的优先级顺序(降序排列)
|- ’(矩阵转置)、^(矩阵幂)、.’(数组转置)、.^(数组幂)
|- ~(逻辑非)
|- *(乘)、/(左除)、\(右除)、.*(点乘)、./(点左除)、.\(点右除)
|- +(加)、-(减)
|- :(冒号)
|- <、<=、>、>=、~=、==
|- &(逻辑与)
|- |(逻辑或)
|- &&(先决与)
|- ||(先决或)
2.15 多维数组
2.15.1 cat(w,p1,p2,...)
|-将一系列的数组沿着特定的维连接成一个多维数组
|-w表示是沿着第几维连接数组p1、p2等
2.15.2 repmat(p,行 页 列 ...)
|-按照指定行列放置模块数组生产多维数组
|-p是用来放置的模块数组,后面的变量要放在指定的各维
2.15.3 reshape(p,行 页 列 ...)
|-在总元素不变的前提下重新确定数组的行列数来重组数组
|-p是待重组的数组,后面的变量是重新生产的数组的行数、列数和页数
2.15.4 ndims(p)
|-直接给出数组的维数
.15.6、获取矩阵大小|-m=size(p,x) 得出某一维的大小
|-返回行数或者列数的最大值
|-等价于max(size(p))
2.16、日期和时间
2.16.1、日期格式
|-日期字符串:01/01/2007、01-Jan-2007等
|-连续的日期数值:以公元元年1月1日开始的,日期数值表示当前时间与开始时间的间隔天数
|-日期向量:包括6个数字的数组,分表为[year month day hour minute second], 日期向量一般不参加运算
2.16.2、日期格式转换
|-datestr:将日期格式转换为字符串格式
|-datenum:将日期格式转换为连续的日期数值格式
|-datevec:将日期格式转换为日期向量格式
2.16.3、获取系统时间
|-date:按照日期字符串格式输出当前系统时间
|-clock:按照日期向量格式获取当前系统时间
|-now:按照连续的日期数值格式获取当前的系统时间
2.16.4、datastr(d,f)
|-按照指定的字符串格式显示日期
|-参数d为日期,f为格式,例如‘dd-mm-yyyy’、‘mm/dd/yy’等
2.16.5、计时函数
|-cputime:返回自MATLAB启动以来的CPU时间
|-tic/toc:tic用于启动定时器,toc用于终止定时器,同时返回程序运行的时间
|-t=etime(t1,t0):计算时间间隔
2.17、稀疏矩阵
2.17.1、sparse
|-sparse(i,j,s,m,n)
|-直接创建稀疏矩阵
|-i,j为非0元素的行列下标;s是非0元素所形成的向量;m,n是s的行 列维数,可省略;i,j,s都是长度相同的向量,生成的矩阵的元素s(k)下标 分别为i(k)和j(k)
|-sparse(p)
|-由全元素矩阵产生
|-p为全元素矩阵
2.17.2、spdiags(D,k,m,n)
|-矩阵D的每一列代表矩阵的对角线向量;k代表对角线的位置(0代表主对角线,-1代表向下位移一单位的次对角线,1代表向上位移一单位的次对角线,一次类推); m,n分别代表矩阵的行,列维数。
2.17.3、返回稀疏矩阵的元素个数
|-nnz:可返回稀疏矩阵的非0元素个数
|-nonzeros:可返回1个包含所有非0元素的列向量
.18、多项式
2.18.1、polyval(p)
|- 多项式求值
|- p为多项式,s为给定矩阵
2.18.2、r=roots(p)
|- 多项式求根
|- p为多项式,r为求得的根,以列向量的形式保存
2.18.3、p=ploy(r)
|- 与roots相反,此函数用于根据多项式的根计算多项式的系数
2.18.4、p=ploy(s)
|- 求解特征多项式
|- s必须为方阵,p为特征多项式
2.18.5、[r,p,k]=residue(b,a)
|- 部分分式展开
|- b和a分别是分子和分母多项式的系数行向量;r为留数行向量;p为极点行向量;k为直项行向量
2.18.6、p=conv(p1,p2)
|- p是多项式p1和p2的乘积多项式
2.18.7、[q,r]=deconv(p1,p2)
|- 除法不一定除尽,可能会有余子式,q为商多项式,r为余子式
2.18.8、polyder
|- 多项式的微分函数
|- MATLAB中没有专用的积分函数,但是却可以使用[p/length(p):-1:1,k]的方式完成
2.18.9、p=polyfit(x,y,n)
|- 多项式拟合使用一个多项式逼近一组给定的数据,准则是最小二乘法
|- x,y向量分别是n个数据点的横坐标、纵坐标;n是用来拟合多项式的阶次,p 为n+1个系数构成的行向量
2.18.10、yi=interp1(x,y,xi,’method’)
|- 插值运算根据数据点的规律,找到一个多项式表达式可以连接的2个点,插值得出相邻数据点之间的数值
|- x,y为行向量,xi为插值范围内的任意点的x的坐标,yi则是运算之后求得对应的y的坐标;method是插值函数的类型,其中,linear为线性插值(默认)、nearest 为最接近的相邻点插值,spline为三次样条插值,cubic为三次插值
2.19、元胞数组与结构数组
2.19.1、元胞数组的创建方式
|- 直接使用{}创建
|- 由各个元胞创建
|- 由各个元胞内容创建
2.19.2、结构数组的创建方式
|- 使用.操作符直接创建
|- 使用struct函数创建
2.19.3、结构数组的获取与设置
|- 使用.操作符直接获取
.20、数据统计分析函数
2.20.1、max(x)、min(x)、mean(x)
|-获得矩阵x中各列的最大值、最小值、平均值
2.20.2、std(x)
|-矩阵中各列的标准差,即各个元素与该列平均值之差的平方和开方
2.20.3、median(x)
|-矩阵中各列的中间元素
2.20.4、var(x)
|-矩阵中各列的方差
2.20.5、C=cov(x)
|-矩阵中各列间的协方差
2.20.6、S=corrcoef(x)
|-矩阵中各列间的相关系数矩阵
2.20.7、[S,k]=sort(X,n)
|-沿第n维按模增大重新排序,k为S元素的原位置
2.21、差分与积分函数
2.21.1、diff(X,m,n)
|-沿第n维求第m阶列向量差分,差分是求相邻行之间的差,结果会少掉一行
2.21.2、[fx,fy]=gradient(Z)
|-对Z求x,y方向二等数值梯度
2.21.3、sum(X)
|-求矩阵各列元素之和
2.21.4、cumsum(X,n)
|-沿第n维列累计求和
2.21.5、cumprod(X,n)
|-沿第n维列求累计成绩
2.21.6、trapz(X,y)
|-阶梯法求积分近似于求元素和,把相邻两点数据的平均值乘以步长表示面积。
2.21.7、cumtrapz(X,y,n)
|-用阶梯法沿第n维求函数y对自变量x累计积分
2.22、卷积与傅里叶变换
2.22.1、conv(x,y)
|-计算x与y的卷积
2.22.2、[q,r]=deconv(x,y)
|-解卷积运算
2.22.3、X=fft(x,N)
|-一维快速傅里叶变换:x可以是向量、矩阵或者多维数组;N为输入变量x的序列长度,可以省略,如果X的长度小于N,则会自动补0;如果X的长度大于N,则会自动截断;当N取2的整数幂时,傅里叶变换的计算速度最快。通常取大于且有最靠近x长度的幂次。
2.22.4、X=ifft(x,N)
|-一维快速傅里叶逆变换:用于将一维快速傅里叶变换的结果转换回原始信号。
向量的数量级(点乘)
MATLAB符号计算
3.1、符号表达式的建立
3.1.1、sym(‘常量’,参数)
|-创建符号常量
|-参数可以省略,当使用参数时,则将数值转换成某种格式的符号常量
|- d:返回最接近的十进制数
|- f:返回该符号值最接近的浮点表示
|- r:返回该符号最接近的有理数型
|- e:返回最接近的带有机器浮点的误差有理值
|- positive:限定为正数
|- real:限定为实数
|- unreal:限定为非实数
3.1.2、syms(arg1,arg2,...,参数)
|-同时创建多个符号常量,参数使用方法与sym一致
|-可以将该函数的括号省略,写成指令的形式
3.1.3、Symbolic Math Toolbox中的算术运算
|-数值型:MATLAB的浮点运算
|-有理数型:精确地符号运算
|-VPA型:任意精度的运算
|-digits(n):设定默认的精度
|-S=vpa(s,n):将s表示为有n位有效数的符号对象
3.2、符号表达式的操作与转换
3.2.1、自由变量的确定原则
|-小写字母i和j不能作为自由变量
|-符号表达式中如果有多个符号变量,则按照以下的顺序选择自由变量:
|-首先选择x,如果没有x,则选择字母顺序中最接近x的字符变量,在x后面的优先
|-大写字母比所有的小写字母都靠后
3.2.2、symvar(EXPR)
|-symvar函数列出除了i,j,pi,inf,nan,eps和函数名之外的符号变量,返 回值是元胞数组
3.2.3、findsym(EXPR,n)
|-EXPR可以是符号表达式或者符号矩阵;n为按顺序得出符号变量的个数,当n 省略时,则不按顺序得出EXPR中所有的符号变量
3.2.4、多项式化简函数表
|-pretty:给出排版形式的输出结果
|-collect:表示为合并同类项多项式
|-expand:表示为多项式形式
|-horner:表示为嵌套的形式
|-factor:表示为因式的形式
|-simplify:利用多种代数恒等式对符号表达式进行化简
|-simple:在多种化简方式中寻找最优
3.2.5、符号表达式的替换
|-subexpr(s,s1)
|-利用符号变量s1置换s中的子表达式
.3、符号表达式的运算
3.3.1、求反函数和复合函数
|-finverse(f,v)
|-对指定自变量v的函数$f(v)$求反函数
|-compose(f,g)
|-求$f(x)$和$g(x)$的复合函数$f(g(y))$
|-compose(f,g,z)
|-求$f(x)$和$g(x)$的复合函数$f(g(z))$
|-compose(f,g,x,z)
|-以$x$为自变量构成复合函数$f(g(z))$
|-compose(f,g,x,y,z)
|-以$x$为自变量构成复合函数$f(g(z))$,并用$z$替换$y$
3.3.2、符号表达式的转换
|-sym2poly:将构成多项式的符号表达式转换为按降幂排列的行向量
|-poly2sym:将按降幂排列的行向量转换成符号表达式
MATLAB中可以使用solve函数对于符号表达式或方程组进行求解。例如,对于线性方程组ax+b=0和cx^2+bx+d=0,可以使用以下代码进行求解:
```matlab
syms x y c
eq1 = a*x + b == 0;
eq2 = c*x^2 + b*x + d == 0;
sol = solve(eq1, x, y, c);
disp(sol)
```
这将输出线性方程组的解。如果您需要对符号表达式进行求解,只需将solve函数的输入参数更改为相应的符号表达式即可。例如:
```matlab
syms x y c
eq1 = a*x + b == 0;
eq2 = c*x^2 + b*x + d == 0;
sol = solve(eq1 & eq2, x, y, c);
disp(sol)
```
)设置坐标轴:
- 坐标的范围、刻度和坐标分格;
e)图形注释:图名、坐标名、图例、文字说明;
f)着色、明暗、灯光、材质处理(仅对三维图形使用);
g)视点、三度(纵横高)比(仅对三维图形使用);
h)图形的精细修饰(图形句柄操作):利用对象的属性值进行设置;利用图形窗口工具条进行设置。
4.1.3、多个图形的绘制方法
|-figure(n):打开n个图形窗口
|-subplot(m,n,k):使m×n幅中的第k幅图成为当前图,其中的,号可以省略
|-同一个窗口多次叠加绘图
|-hold on:使当前的坐标系和图形保留
|-hold off:是当前的坐标系和图形不保留
|-hold:在以上的2个命令中切换
|-plotyy(x1,y1,x2,y2)
|-双纵坐标绘图
|-左纵轴用于绘制x1,y1的数据,...
|-坐标轴的刻度和范围都是自动产生的
4.2、曲线的线形、颜色和数据点形
plot(x,y,s)中的s为控制字符串,可以取下列的值:
4.2.1、颜色类
|-y:黄色
|-m:品红色(紫色)
|-c:青色
|-r:红色
|-g:绿色
|-b:蓝色
|-w:白色
|-k:黑色
4.2.2、数据点间的连线
|-实线(默认): -
|-点线: :
|-点画线: -.
|-虚线: --
4.2.3、数据点形
|-实点标记: .
|-圆圈标记: o
|-叉号标记: ×
|-十字形: +
|-星号标记: *
|-方块标记: s
|-钻石型标记: d
|-向下三角形标记: v
|-向上三角形标记: ^
|-向左三角形标记: <
|-向右三角形标记: >
|-五角星标记: p
|-六连型标记: h
您好!这是一段关于MATLAB绘图的描述。这段描述中提到了4.3.2、分割线,4.3.3、文字标注,4.4、特殊图形的绘制,以及4.5、特殊坐标系绘图等章节。如果您有具体的问题或需要更详细的信息,请告诉我,我会尽力帮助您。谢谢!
以下是MATLAB中常用的绘图函数:
|-plot(x,y)
|-plot3(x,y,z)
|-polar([r,theta])
|-histogram(data,nbins)
|-stem(data)
|-scatter(x,y)
|-boxplot(data)
|-bar(data)
|-contour(Z,n)
|-mesh(x,y,z)
|-surf(X,Y,Z)
这是一份关于Python图像处理库Pillow的文档。其中包括了6.2、文件I/O,6.3、代数操作,6.4、几何操作,6.5、像素和统计处理,6.6、图像复原和6.7、图像分析的内容。如果您需要更详细的说明或者有其他问题,请告诉我。我会尽力帮助您。
.8、图像增强
|-imadjust:对比度调整|-histeq:直方图均衡
|-imnoise:给图像增加噪声,包括高斯白噪声、黑白像素点噪声、乘积性噪声
|-medfilt2:二维中值滤波器
|-ordfilt2:顺序统计滤波器
|-wiener2:二维自适应除噪滤波器
6.9、图像线性滤波及二维线性滤波器设计
|-conv2:二维卷积
|-convmtx2:计算二维卷积矩阵
|-convn:多维卷积
|-fspecial:产生预定义滤波器
|-filter:一维线性数字滤波,通常与产生预定义的滤波器函数fspecial配套使用
|-filter2:二维线性数字滤波,通常与产生预定义的滤波器函数fspecial配套使用
|-freqspace:确定二维频率响应间隔
|-freqz2:计算二维频率响应
|-fsamp2:用频率抽样法设计二维FIR滤波器
|-ftrans2:用频率转换法设计二维FIR滤波器
|-fwindl:用一维窗口法设计二维FIR滤波器
|-fwindl2:用二维窗口法设计二维FIR滤波器
|-imfilter:对任意类型数组或多维图像进行滤波
6.10、图像变换
|-fft、fft2、fftn:快速傅里叶变换
|-ifft、ifft2、ifftn:快速傅里叶逆变换
|-fftshift:直流分量移到频谱中心
|-dct、dct2:离散余弦变换
|-idct、idct2:离散余弦逆变换
|-dctmtx:计算DCT变换矩阵
|-dwt:一维离散小波变换
|-idwt:一维离散小波逆变换
|-wavedec:一维信号小波分解
|-waverec:一维信号小波重构
|-appcoef:从一维小波分解的分解结构中提取出信号的低频系数,常和waverec函数配套使用
|-detcoef:从一维小波分解的分解结构中提取出信号的高频系数,常和waverec函数配套使用
|-dwt2:二维离散小波变换
|-idwt2:二维离散小波逆变换
|-wavedec2:二维信号的小波分解
|-waverec2:二维信号的小波重构
|-appcoef2:......
|-detcoef2:......
|-wcodemat:对数据矩阵进行伪彩色编码
这是一份关于图像处理的文档,其中包括了很多内容,例如计算Radon变换、二值图像操作、基于区域的图像处理、颜色空间转换等等。如果你有具体的问题或者需要更详细的信息,可以告诉我,我会尽力帮助你。
[6.12、二值图像操作]
- applylut:使用查找表进行领域操作
- bwarea:计算二值图像中的目标区域
- bweuler:计算二值图形的欧拉数
- bwfill:二值图像背景区域填充
- bwlabel:标识二值图像中的连接成分
- bwconncomp:查找二值图像中的联通分量
- bwmorph:二值图像形态运算
- bwperim:确定二值图像中的目标边界
- bwselet:选择二值图像中的目标
- imdilate:对二值图像进行膨胀运算
- imerode:对二值图像进行腐蚀运算
- imopen:对二值图像进行开运算
- imclose:对二值图像进行闭运算
- makelut:构造(applylut)函数使用的查找表
[6.13、基于区域的图像处理]
- roicolor:根据颜色选择要处理的区域
- roifill:在任意区域内平滑插值
- roifilt2:对要处理的区域滤波
- roipoly:选择要处理的多边形区域
、数据类型转换
6.17、数据类型转换
在计算机视觉中,数据的类型对于处理图像非常重要。不同的数据类型对应着不同的精度和范围,因此在进行图像处理时,需要将图像数据转换为适当的数据类型。常见的数据类型转换方法有以下几种:
|-double:
* 双精度浮点数(float64),表示一个浮点数值,具有较高的精度,但相对较大。适用于大多数计算机硬件和操作系统。
|-im2double:把图像数组转换成double类型
* `im2double`函数将输入的图像数组转换为`double`类型的数组。这种转换可以提高计算精度,特别是在进行深度学习等需要高精度计算的任务时。
```python
import numpy as np
import cv2
def im2double(img):
img = img.astype('float64') / 255.0
return img
```
|-im2single:把图像数组转换成single类型
* `im2single`函数将输入的图像数组转换为`single`类型的数组。这种转换主要用于嵌入式系统或移动设备等资源受限的环境,因为它占用的内存和计算资源较少。
```python
import numpy as np
import cv2
def im2single(img):
img = img.astype('float32') / 255.0
return img.tobytes()
```
|-im2uint16、im2uint8:分别将图像数组转换为无符号整型数组,取值范围为0到65535。这种转换可以将图像数据压缩,减小存储空间和传输带宽的需求。通常用于图像压缩、网络传输等场景。
```python
import numpy as np
import cv2
def im2uint16(img):
img = (img * 255).astype('uint16') // 65535.0
return img.tobytes()
```