MATLAB程序大全
matlab代码大全

MATLAB主要命令汇总MATLAB函数参考附录1.1 管理用命令函数名功能描述函数名功能描述addpath 增加一条搜索路径 rmpath 删除一条搜索路径demo 运行Matlab演示程序 type 列出.M文件doc 装入超文本文档 version 显示Matlab的版本号help 启动联机帮助 what 列出当前目录下的有关文件lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录path 设置或查询Matlab路径附录1.2管理变量与工作空间用命令函数名功能描述函数名功能描述clear 删除内存中的变量与函数 pack 整理工作空间内存disp 显示矩阵与文本 save 将工作空间中的变量存盘length 查询向量的维数 size 查询矩阵的维数load 从文件中装入数据 who,whos 列出工作空间中的变量名附录1.3文件与操作系统处理命令函数名功能描述函数名功能描述cd 改变当前工作目录 edit 编辑.M文件delete 删除文件 matlabroot 获得Matlab的安装根目录diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件! 执行操作系统命令附录1.4窗口控制命令函数名功能描述函数名功能描述echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面format 设置输出格式附录1.5启动与退出命令函数名功能描述函数名功能描述matlabrc 启动主程序 quit 退出Matlab环境startup Matlab自启动程序附录2 运算符号与特殊字符附录2.1运算符号与特殊字符函数名功能描述函数名功能描述+ 加 ... 续行标志- 减 , 分行符(该行结果不显示)* 矩阵乘 ; 分行符(该行结果显示).* 向量乘 % 注释标志^ 矩阵乘方 ! 操作系统命令提示符.^ 向量乘方矩阵转置kron 矩阵kron积 . 向量转置\ 矩阵左除 = 赋值运算/ 矩阵右除 == 关系运算之相等.\ 向量左除 ~= 关系运算之不等./ 向量右除 < 关系运算之小于: 向量生成或子阵提取 <= 关系运算之小于等于() 下标运算或参数定义 > 关系运算之大于[] 矩阵生成 >= 关系运算之大于等于{} & 逻辑运算之与. 结构字段获取符 | 逻辑运算之或. 点乘运算,常与其他运算符联合使用(如.\) ~ 逻辑运算之非xor 逻辑运算之异成附录2.2逻辑函数函数名功能描述函数名功能描述all 测试向量中所用元素是否为真 is*(一类函数) 检测向量状态.其中*表示一个确定的函数(isinf)any 测试向量中是否有真元素 *isa 检测对象是否为某一个类的对象exist 检验变量或文件是否定义 logical 将数字量转化为逻辑量find 查找非零元素的下标附录3 语言结构与调试附录3.1编程语言函数名功能描述函数名功能描述builtin 执行Matlab内建的函数 global 定义全局变量eval 执行Matlab语句构成的字符串 nargchk 函数输入输出参数个数检验feval 执行字符串指定的文件 script Matlab语句及文件信息function Matlab函数定义关键词附录3.2控制流程函数名功能描述函数名功能描述break 中断循环执行的语句 if 条件转移语句case 与switch结合实现多路转移 otherwise 多路转移中的缺省执行部分else 与if一起使用的转移语句 return 返回调用函数elseif 与if一起使用的转移语句 switch 与case结合实现多路转移end 结束控制语句块 warning 显示警告信息error 显示错误信息 while 循环语句for 循环语句附录3.3交互输入函数名功能描述函数名功能描述input 请求输入 menu 菜单生成keyboard 启动键盘管理 pause 暂停执行附录3.4面向对象编程函数名功能描述函数名功能描述class 生成对象 isa 判断对象是否属于某一类double 转换成双精度型 superiorto 建立类的层次关系inferiorto 建立类的层次关系 unit8 转换成8字节的无符号整数inline 建立一个内嵌对象附录3.5调试函数名功能描述函数名功能描述dbclear 清除调试断点 dbstatus 列出所有断点情况dbcont 调试继续执行 dbstep 单步执行dbdown 改变局部工作空间内存 dbstop 设置调试断点dbmex 启动对Mex文件的调试 sbtype 列出带命令行标号的.M文件dbquit 退出调试模式 dbup 改变局部工作空间内容dbstack 列出函数调用关系附录4 基本矩阵与矩阵处理附录4.1基本矩阵函数名功能描述函数名功能描述eye 产生单位阵 rand 产生随机分布矩阵linspace 构造线性分布的向量 randn 产生正态分布矩阵logspace 构造等对数分布的向量 zeros 产生零矩阵ones 产生元素全部为1的矩阵 : 产生向量附录4.2特殊向量与常量函数名功能描述函数名功能描述ans 缺省的计算结果变量 non 非数值常量常由0/0或Inf/Inf获得computer 运行Matlab的机器类型 nargin 函数中参数输入个数eps 精度容许误差(无穷小) nargout 函数中输出变量个数flops 浮点运算计数 pi 圆周率i 复数单元 realmax 最大浮点数值inf 无穷大 realmin 最小浮点数值inputname 输入参数名 varargin 函数中输入的可选参数j 复数单元 varargout 函数中输出的可选参数附录4.3时间与日期函数名功能描述函数名功能描述calender 日历 eomday 计算月末clock 时钟 etime 所用时间函数cputime 所用的CPU时间 now 当前日期与时间date 日期 tic 启动秒表计时器datenum 日期(数字串格式) toc 读取秒表计时器datestr 日期(字符串格式) weekday 星期函数datevoc 日期(年月日分立格式)附录4.4矩阵处理函数名功能描述函数名功能描述cat 向量连接 reshape 改变矩阵行列个数diag 建立对角矩阵或获取对角向量 rot90 将矩阵旋转90度fliplr 按左右方向翻转矩阵元素 tril 取矩阵的下三角部分flipud 按上下方向翻转矩阵元素 triu 取矩阵的上三角部分repmat 复制并排列矩阵函数附录5 特殊矩阵函数名功能描述函数名功能描述compan 生成伴随矩阵 invhilb 生成逆hilbert矩阵gallery 生成一些小的测试矩阵 magic 生成magic矩阵hadamard 生成hadamard矩阵 pascal 生成pascal矩阵hankel 生成hankel矩阵 toeplitz 生成toeplitz矩阵hilb 生成hilbert矩阵 wilkinson 生成wilkinson特征值测试矩阵附录6 数学函数附录6.1三角函数函数名功能描述函数名功能描述sin/asin 正弦/反正弦函数 sec/asec 正割/反正割函数sinh/asinh 双曲正弦/反双曲正弦函数 sech/asech 双曲正割/反双曲正割函数cos/acos 余弦/反余弦函数 csc/acsc 余割/反余割函数cosh/acosh 双曲余弦/反双曲余弦函数 csch/acsch 双曲余割/反双曲余割函数tan/atan 正切/反正切函数 cot/acot 余切/反余切函数tanh/atanh 双曲正切/反双曲正切函数 coth/acoth 双曲余切/反双曲余切函数atan2 四个象限内反正切函数附录6.2指数函数函数名功能描述函数名功能描述exp 指数函数 log10 常用对数函数log 自然对数函数 sqrt 平方根函数附录6.3复数函数函数名功能描述函数名功能描述abs 绝对值函数 imag 求虚部函数angle 角相位函数 real 求实部函数conj 共轭复数函数附录6.4数值处理函数名功能描述函数名功能描述fix 沿零方向取整 round 舍入取整floor 沿-∞方向取整 rem 求除法的余数ceil 沿+∞方向取整 sign 符号函数附录6.5其他特殊数学函数函数名功能描述函数名功能描述airy airy函数 erfcx 比例互补误差函数besselh bessel函数(hankel函数) erfinv 逆误差函数bessili 改进的第一类bessel函数 expint 指数积分函数besselk 改进的第二类bessel函数 gamma gamma函数besselj 第一类bessel函数 gammainc 非完全gamma函数bessely 第二类bessel函数 gammaln gamma对数函数beta beta函数 gcd 最大公约数betainc 非完全的beta函数 lcm 最小公倍数betaln beta对数函数 log2 分割浮点数elipj Jacobi椭圆函数 legendre legendre伴随函数ellipke 完全椭圆积分 pow2 基2标量浮点数erf 误差函数 rat 有理逼近erfc 互补误差函数 rats 有理输出附录7 坐标转换函数名功能描述函数名功能描述cart2pol 笛卡儿坐标到极坐标转换 pol2cart 极坐标到笛卡儿坐标转换cart2sph 笛卡儿坐标到球面坐标转换 sph2cart 球面坐标到笛卡儿坐标转换附录8 矩阵函数附录8.1矩阵分析函数名功能描述函数名功能描述cond 求矩阵的条件数 rcond LINPACK倒数条件估计det 求矩阵的行列式 rref 矩阵的行阶梯型实现norm 求矩阵的范数 rrefmovie 消元法解方程演示null 右零空间 subspace 子空间orth 正交空间 trace 矩阵的迹rank 求矩阵的秩附录8.2线性方程函数名功能描述函数名功能描述/,\ 线性方程求解 nnls 非零最小二乘chol Cholesky分解 pinv 求伪逆矩阵inv 矩阵求逆 qr 矩阵的QR分解lscov 最小二乘方差 qrdelete QR分解中删除一行lu 矩阵的LU三角分解 qrinsert QR分解中插入一行附录8.3特征值与奇异值函数名功能描述函数名功能描述banlance 改进特征值精度的均衡变换 qz QZ算法求矩阵特征值cdf2rdf 复块对角阵到实块对角阵转换 rdf2cdf 实块对角阵到复块对角阵转换eig 求矩阵的特征值和特征向量 schur Schur分解hess 求Hessenberg矩阵 svd 奇异值分解poly 求矩阵的特征多项式附录8.4矩阵函数函数名功能描述函数名功能描述expm 矩阵指数函数 logm 矩阵对数函数funm 矩阵任意函数 sqrtm 矩阵平方根附录9 数据分析与Fourier变换函数附录9.1基本运算函数名功能描述函数名功能描述cumprod 向量累积 prod 对向量中各元素求积cumsum 向量累加 sort 对向量中各元素排序max 求向量中最大元素 sortrows 对矩阵中各行排序min 求向量中最小元素 std 求向量中各元素标准差mean 求向量中各元素均值 sum 对向量中各元素求和median 求向量中中间元素 trapz 梯形法求数值积分附录9.2微分计算函数名功能描述函数名功能描述del2 离散Laplace变换 gradient 梯度计算diff 差分于近视微分附录9.3滤波与卷积函数名功能描述函数名功能描述Conv 卷给与多项式乘法 filter 一维数字滤波conv2 二维卷积 filter2 二维数字滤波Deconv 因式分解与多项式乘法附录9.4方差处理函数名功能描述函数名功能描述corrcoef 相关系数计算 cov 协方差计算附录9.5Fourier变换函数名功能描述函数名功能描述abs 绝对值函数 fftshift fft与fft2输出重排angle 相角函数 ifft 离散Fourier逆变换cplxpair 依共轭复数对重新排序 ifft2 二维离散Fourier逆变换fft 离散Fourier变换 unwrap 相角矫正fft2 二维离散Fourier变换附录10 多项式处理函数附录10.1多项式处理函数名功能描述函数名功能描述conv 卷机与多项式乘法 polyfit 数据的多项式拟合deconv 因式分解与多项式乘法 polyval 多项式求值poly 求矩阵的特征多项式 polyvalm 多项式矩阵求值polyder 多项式求导 residue 部分分式展开polyeig 多项式特征值 roots 求多项式的根附录10.2数据插值函数名功能描述函数名功能描述griddata 数据网络的插值生成 interpft 一维插值(FFT方法)interp1 一维插值(查表) interpn 多维插值(查表)interp2 二维插值(查表) meshgrid 构造三维图形用x,y阵列interp3 三维插值(查表) spline 三次样条插值附录11 非线性数值方法函数名功能描述函数名功能描述dblquad 双重积分 odeget 获得微分方程求解的可选参数fmin 单变量最优化函数 odeset 设置微分方程求解的可选参数fmins 多变量最优化函数 quad 低阶数值积分方法ode45,ode23,ode113,ode15s,ode23s 微分方程数值解法 quad8 高阶数值积分方法odefile 对文件定义的微分方程求解附录12 稀疏矩阵函数附录12.1基本稀疏矩阵函数名功能描述函数名功能描述spdiags 稀疏对角矩阵 sprandn 稀疏正态分布随机矩阵speye 稀疏单位矩阵 sprandsym 稀疏对称随机矩阵sprand 稀疏均匀分布随机矩阵附录12.2稀疏矩阵转换函数名功能描述函数名功能描述find 查找非零元素下标 sparse 常规矩阵转换为稀疏矩阵full 稀疏矩阵转换为常规矩阵 spconvert 由外部格式引入稀疏矩阵附录12.3处理非零元素函数名功能描述函数名功能描述issparse 判断元素是否为稀疏矩阵 nzmax 允许的非零元素空间mmz 稀疏矩阵的非零元素个数 spalloc 为非零元素定位存储空间nonzeros 稀疏矩阵的非零元素 spfun 为非零元素定义处理函数附录12.4稀疏矩阵可视化函数名功能描述函数名功能描述gplot 绘制图论图形 spy 绘制稀疏矩阵结构附录12.5排序算法函数名功能描述函数名功能描述colmmd 列最小度排序 randperm 产生随机置换向量colperm 由非零元素的个数排序各列 symmd 对称最小度排序dmperm Dulmage-Mendelsohn分解 symrcm 反向Cuthill-McKee排序附录12.6范数、条件数函数名功能描述函数名功能描述condest 估算||*||1范数 normest 估算||*||2范数sprank 计算结构秩附录12.7特征值与奇异值函数名功能描述函数名功能描述eigs 求稀疏矩阵特征值和特征向量 svds 稀疏矩阵奇异值分解附录12.8其他函数名功能描述函数名功能描述spaugment 最小二乘算法形成 symbact 符号因子分解spparms 设置稀疏矩阵参数附录13 图形绘制附录13.1基本二维图形函数名功能描述函数名功能描述fill 填充二维多边形 polar 极坐标图形绘制loglog 全对数二维坐标绘制 semilogx x轴半对数坐标图形绘制plot 线性坐标图形绘制 semilogy y轴半对数坐标图形绘制附录13.2基本三维图形函数名功能描述函数名功能描述fill3 三维多边形填充 plot3 三维线或点型图绘制mesh 三维网格图形绘制 surf 三维表面图形绘制附录13.3三维颜色控制函数名功能描述函数名功能描述brighten 图形亮度调整 hidden 网格图的网格线开关设置caxis 坐标轴伪彩色设置 shading 设置渲染模式colormap 调色板设置附录13.4三维光照模型函数名功能描述函数名功能描述diffuse 图象漫射处理 surf1 带光照的三维表面绘制lighting 光照模式设置 surfnorm 曲面法线specular 设置镜面反射附录13.5标准调色板设置函数名功能描述函数名功能描述bone 带有蓝色调的灰色的调色板 hot 以黑红黄白为基色的调色板cool 以天蓝粉色为基色的调色板 hsv 色度饱和度亮度调色板copper 线性铜色调的调色板 pink 粉色色调的调色板flag 以红白蓝黑为基色的调色板 prism 光谱颜色表gray 线性灰度调色板附录13.6三维视点控制函数名功能描述函数名功能描述rotate3d 设置三维旋转开关 viewmtx 求视转换矩阵view 设置视点附录13.7坐标轴控制函数名功能描述函数名功能描述axis 坐标轴标度设置 hold 设置当前图形保护模式axes 坐标轴位置设置 subplot 将图形窗口分成几个区域box 坐标轴盒状显示 zoom 二维图形缩放grid 坐标网格线开关设置附录13.8图形注解函数名功能描述函数名功能描述colorbar 颜色条设置 xlabel 给图形的x轴加文字说明gtext 在鼠标位置加文字说明 ylabel 给图形的y轴加文字说明text 在图形上加文字说明 zlabel 给图形的z轴加文字说明title 给图形加标题附录13.9拷贝与打印函数名功能描述函数名功能描述print 打印图形或将图形存盘 orient 设置纸的方向orintopt 设置打印机为默认值附录14 特殊图形附录14.1特殊二维图形函数名功能描述函数名功能描述area 区域填充 feather 羽状条形图绘制bar 条形图绘制 fplot 给定函数绘制barh 水平条形图绘制 hist 直方图绘制bar3 3维条形图绘制 pareto pareto图绘制bar3h 3维水平条形图绘制 pie 饼状图绘制comet 彗星状轨迹绘制 stem 离散序列图形绘制errorbar 误差条形图绘制 stairs 梯形图绘制附录14.2等高线及其他二维图形函数名功能描述函数名功能描述contour 等高线绘制 pcolor 伪色绘制contourf 等高线填充绘制 quiver 有向图(箭头)绘制contour3 三维等高线绘制 voronoil voronoi图绘制clabel 等高线高程标志附录14.3特殊三维图形函数名功能描述函数名功能描述comet3 三维彗星状轨迹绘制 slice 切片图meshc 带等高线的三维网格绘制 surfc 带等高线的三维表面绘制meshz 带零平面的三维网格绘制 trisurf 表面图形的三角绘制stem2 杆图绘制 trimesh 网格图形的三角绘制quiver3 三维箭头(有向图)绘制 waterfall 瀑布型图形的绘制附录14.4图象显示与文件I/O函数名功能描述函数名功能描述brighten 图形色调亮化 image 图像显示colorbar 颜色条设置 imfinfo 图形文件信息colormap 调色板设置 imread 从文件读取图形contrast 灰度对比度设置 imwrite 保存图像附录14.5动画处理函数名功能描述函数名功能描述capture 屏幕抓取 movie 播放动画帧getframe 获取动画帧附录14.6实体模型函数名功能描述函数名功能描述cylinder 圆柱体生成 sphere 球体生成附录15 图形处理附录15.1图形窗口生成与控制函数名功能描述函数名功能描述clf 清除当前图形窗口 gcf 获取当前图形的窗口句柄close 关闭图形窗口 refresh 图形窗口刷新figure 生成图形窗口 shg 显示图形窗口附录15.2坐标轴建立与控制函数名功能描述函数名功能描述axes 坐标轴标度设置 gca 获得当前坐标轴句柄axis 坐标轴位置设置 hold 设置当前图形保护模式box 坐标轴盒状显示 ishold 返回hold的状态caxis 为彩色坐标轴刻度 subplot 将图形窗口分为几个区域cla 清除当前坐标轴附录15.3处理图形对象函数名功能描述函数名功能描述axes 坐标轴生成 surface 表面生成figure 图形窗口生成 text 文本生成image 图像生成 unicontrol 生成一个用户接口控制light 光源生成 uimenu 菜单生成line 线生成附录15.4图形函数名功能描述函数名功能描述copyobj 图像对象拷贝 gcbo 获得当前回调对象的句柄delete 对象删除 gco 获得当前对象的句柄drawnow 消除未解决的图像对象事件 get 获得对象属性findobj 查找对象 reset 重新设置对象属性gebf 获得当前回调窗口的句柄 set 设置对象属性附录16 GUI(图形用户接口)附录16.1GUI函数函数名功能描述函数名功能描述ginput 获取鼠标输入 uiresume 继续执行selectmoveresize 对象的选择、移动、大小设置、拷贝 uiwait 中断执行uicontrol 生成图形用户接口对象 waitgorbutterpress 等待按钮输入uimenu 生成菜单对象 waitfor 中断执行附录16.2GUI设计工具函数名功能描述函数名功能描述align 坐标轴与用户接口控制的对齐工具 menuedit 菜单编辑器cbedit 回调函数编辑器 propedit 属性编辑器guide GUI设计工具附录16.3对话框函数名功能描述函数名功能描述dialog 对话框生成 printdlg 打印对话框axlimdig 坐标轴设限对话框 questdlg 请求对话框errordlg 错误对话框 uigetfile 标准的打开文件对话框helpdlg 帮助对话框 uiputfile 标准的保存文件对话框inputdlg 输入对话框 uisetcolor 颜色选择对话框listdlg 列表选择对话框 uisetfont 字体选择对话框msgdlg 消息对话框 waitbar 等待条显示pagedlg 页位置对话框 warndlg 警告对话框附录16.4菜单函数名功能描述函数名功能描述makemenu 生成菜单结构 umtoggle 菜单对象选中状态切换menubar 设置菜单条属性 wimenu 生成window菜单项的子菜单附录16.5组按钮函数名功能描述函数名功能描述btndown 组按钮中的按钮按下 btnstate 查询按钮中的按钮状态btngroup 组按钮生成 btnup 组按钮中的按钮弹起btnpress 组按钮中的按钮按下管理附录16.6自定义窗口属性函数名功能描述函数名功能描述clruprop 清除用户自定义属性 setuprop 设置用户自定义属性getuprop 获取用户自定义属性附录16.7其他应用函数名功能描述函数名功能描述allchild 获取所有子对象 popupstr 获取弹出式菜单选中项的字符串edtext 坐标轴文本对象编辑 remapfig 改变窗口中对象的位置findall 查找所有对象 setptr 设置窗口指针getptr 获得窗口指针 setstatus 设置窗口中文本传状态getstatus 获取窗口中文本状态附录17 声音处理函数名功能描述函数名功能描述soond 将向量转换成声音 wavread 读。
matlab经典源程序带有注释(详细经典)

2.1set 与get 函数 (1)2.2callback函数 (2)2.3元胞数组 (4)2.4结构数组 (6)2.5矩阵操作 (9)2.6字符串操作 (13)2.7判断函数使用大全 (16)2.11打开外部程序 (21)2.11程序运行时间 (22)2.14动画 (23)2.12动画 (24)2.23显示多行内容 (26)2.24 uitable 使用 (26)2.27鼠标操作 (27)2.28键盘操作 (27)2.32粘贴板 (28)2.1set 与get 函数set(edit_handle,'String','my value!'); %String为Edit控件的属性%%%2.1-1%创建figure对象hfig=figure(1);%创建坐标轴对象,指定其父对象为figure 1haxes1=axes('parent',hfig);prop.Color='b';prop.FontSize=12;set(haxes1,prop);%%%2.1-2hfig=figure(1);%查询其Units属性值get(hfig,'units')%其Units属性值为pixels(像素)% ans=% pixels%%%2.1-3%figure的Pointer属性标识了鼠标指针的形状set(gcf,'pointer');% 返回值为:[ crosshair | fullcrosshair | {arrow} | ibeam | watch | topl | topr | botl | botr | left | top | right | bottom | circle | cross | fleur | custom | hand ]%%%2.1-4%首先取得标识电脑屏幕大小的度量单位get(0,'units')% ans =% pixels%取得屏幕的尺寸get(0,'screensize')% ans =% 1 1 1280 8002.2callback函数%定义M文件的主函数名称为DefineCallback,不带输入和输出参数function DefineCallbackhFig= figure('units','normalize',...'position',[0.4 0.4 0.3 0.2]);%在窗口中创建按钮控件,并定义其Callback属性uicontrol('parent',hFig,...'style','pushbutton',...'String','Execute Callback',...'units','normalize',...'position',[0.4 0.4 0.3 0.2],...'callback',['figure;',...'x = 0:pi/20:2*pi;',...'y = sin(x);',...'plot(x,y);']);%定义M文件的主函数名称为DefineCallback,不带输入和输出参数function DefineCallback%创建界面窗口hFig= figure('units','normalize',...'position',[0.4 0.4 0.3 0.2]);%在窗口中创建按钮控件hpush=uicontrol('parent',hFig,...'style','pushbutton',...'String','Execute Callback',...'units','normalize',...'position',[0.4 0.4 0.3 0.2]);%设置按钮的Callback属性set(hpush,'callback',@mycallback);%定义回调函数为子函数function mycallback(hobj,event)figure;x = 0:pi/20:2*pi;y = sin(x);plot(x,y);2.3元胞数组a={'hello' [1 2 3;4 5 6];1 {'1''2'}}a ='hello' [2x3 double][ 1] {1x2 cell }%示例2:将元胞数组a中的元胞逐一赋值>> a{1,1}='hello';a{1,2}=[1 2 3;4 5 6];a{2,1}=1;a{2,2}={'1' '2'};>> aa ='hello' [2x3 double][ 1] {1x2 cell }%示例3:使用cell函数来创建元胞数组%生成2x3的元素为空数组的元胞数组>> a=cell(2,3)a =[] [] [][] [] []%示例4:判断数组A是否为元胞数组%定义一个元胞数组A>> A={1 2 3};%判断A是否为元胞数组,如果为元胞数组,则函数>> tf = iscell(A)tf =1%示例5:显示元胞数组C中的内容>> clear>> C={'Smith' [1 2;3 4] [12]};%直接显示元胞数组C中的内容>> celldisp(C)C{1} =SmithC{2} =1 23 4C{3} =12%显示元胞数组C中的内容,数组的名称用cellcontent代替>> celldisp(C,'cellcontent')cellcontent{1} =Smithcellcontent{2} =1 23 4cellcontent{3} =12%示例6:将字符数组转换为元胞数组>> S = ['abc '; 'defg'; 'hi m'];>> cellstr(S)ans ='abc'%原先abc后面的空格被清除'defg''hi m'%i和m之间的空格仍然保留%示例7:显示元胞数组S中的内容(包括空格和字符)>> S = {'abc ', 'defg','hi m'};>> cellplot(S)%示例8:将数字数组A按行或按列转换为元胞数组%A是4x3的数组>> A=[1 2 3;4 5 6;7 8 9;10 11 12];%把A的每一列转换为一个元胞,得到的C是1×3的元胞数组>> C=num2cell(A,1)C =[4x1 double] [4x1 double] [4x1 double] %把A的每一行转换为一个元胞,得到的C是4×1的元胞数组>> C=num2cell(A,2)C =[1x3 double][1x3 double][1x3 double][1x3 double]2.4结构数组%示例1:使用直接法来创建结构数组>> A(1).name = 'Pat';A(1).number = 176554;A(2).name = 'Tony';A(2).number = 901325;>> AA =1x2 struct array with fields:namenumber%示例2:利用struct函数来创建结构数组>> A(1)=struct('name','Pat','number',176554);A(2)=struct('name','Tony','number',901325);>> AA =1x2 struct array with fields:namenumber%示例3:使用deal函数来得到结构体中各结构域的值%定义结构数组A>> = 'Pat'; A.number = 176554;A(2).name = 'Tony';A(2).number = 901325;%得到结构数组中所有name结构域的数据>>[name1,name2] = deal(A(:).name)name1 =Patname2 =Tony%示例4:使用getfield函数来取得结构体中结构域的值%定义mystr结构数组>> mystr(1,1).name = 'alice';mystr(1,1).ID = 0;mystr(2,1).name = 'gertrude';mystr(2,1).ID = 1;%取得mystr(2,1)的结构域name的值>> f = getfield(mystr, {2,1}, 'name')f =gertrude%示例5:删除结构数组中的指定结构域%定义结构数组s>> s.field1=[1 2 3];s.field2='string';s.field3={1 2 3;4 5 6}; %删除结构域field1>> s=rmfield(s,'field1')s =field2: 'string'field3: {2x3 cell}%删除结构域'field2','field3'>> s=rmfield(s,{'field2','field3'})s =field1: [1 2 3]%示例6:%定义结构数组s>> s.field1=[1 2 3];s.field2='string';s.field3={1 2 3;4 5 6}; >> ss =field1: [1 2 3]field2: 'string'field3: {2x3 cell}%将结构数组转换为元胞数组>> c=struct2cell(s)c =[1x3 double]'string'{2x3 cell }%示例7:>>c = {'birch', 'betula', 65; 'maple', 'acer', 50}c ='birch''betula' [65]'maple''acer' [50]>>fields = {'name', 'genus', 'height'}; %fields包含struct中的结构域名>>s = cell2struct(c, fields, 2); %dim=2表示把c中的各行转换为struct数组s =2x1 struct array with fields:namegenusheight>> s(1)ans =name: 'birch'genus: 'betula'height: 65>> s(2)ans =name: 'maple'genus: 'acer'height: 50>> fields = {'field1', 'field2'};>> s = cell2struct(c, fields, 1); %dim=1表示把c中的各列转换为struct数组>> s(1)ans =field1: 'birch'field2: 'maple'>> s(2)ans =field1: 'betula'field2: 'acer'>> s(3)ans =field1:65field2:502.5矩阵操作%示例1: find函数的使用方法。
matlab程序

matlab程序(1)0122sin851z e =+ Z=(2*sin(85/180)*pi)/(1+exp(2))(2)22121(0.4552i z In x x +??=+=??-??其中x=[2,1+2i;-0.45,5]; Z=(1/2)*log(x+sqrt(1+(x*x)))(3) 已知 1234413134787,2033657327A B --==-????求下列表达式的值:A+6*B A=[12,34,-4;34,7,87;3,65,7]B=[1,3,-1;2,0,3;3,-2,7]Z=A+6*BA-B+I (其中I 为单位矩阵)U=A-B+eyeA*B D=A*BA^3 F=A^3A.^3 Z=A.^3A/B Z=A/BB\A Z=B/A[A,B] Z=[A,B][A ([1,3],:);B^2] Z=[A([1,3],:);B^2](4)设有矩阵A 和B1234530166789101769A ,111213141502341617181920970212223242541311B -==-求它们的乘积 A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25]B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]C=A*B 将矩阵C 的右下⾓3*2⼦矩阵赋给D ;D=C([3,4,5],[2,3])(5)⽤for 循环语句实现求1~100的和 sum=0;for x=1:100 sum=sum+x;end(6) ⽤for 循环语句求10!n=10;y=1;for i=1:1:n;y=y*i;end(7) 分别⽤if 和switch 语句实现以下计算,a,b,c,x 的值从键盘输⼊:<≤<≤<≤++++=5.55.35.35.15.15.0,/,sin ,2x x x x c b In x b a c bx ax y c a=input('a=?') b=input('b=?') c=input('c=?') x=input('x=?') if(0.5<=x)&(x<1.5) y=a*x*x+b*x+celseif(1.5<=x)&(x<3.5) y=a*(sinb).^c+xelseif(3.5<=x)&(x<5.5) y=log(abs((b+c/x))) enda=input('a=?') b=input('b=?') c=input('c=?') x=input('x=?')switch xcase (0.5<=x)&(x<1.5) y=a*x*x+b*x+ccase (1.5<=x)&(x<3.5) y=a*(sinb).^c+xcase (3.5<=x)&(x<5.5) y=log(abs((b+c/x)))end(8)⽤图形表⽰连续调制波形Y=sin(t )sin(9t ) 及其包络线。
matlab经典代码大全

哈哈哈MATLAB显示正炫余炫图:plot(x,y1,'* r',x,y2,'o b')定义【0,2π】;t=0:pi/10:2*pi;定义函数文件:function [返回变量列表]=函数名(输入变量列表)顺序结构:选择结构1)if-else-end语句其格式为:if 逻辑表达式程序模块1;else程序模块2;End图片读取:%选择图片路径[filename, pathname] = ...uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');%合成路径+文件名str=[pathname,filename];%为什么pathname和filename要前面出现的位置相反才能运行呢???%读取图片im=imread(str);%使用图片axes(handles.axes1);%显示图片imshow(im);边缘检测:global imstr=get(hObject,'string');axes (handles.axes1);switch strcase ' 原图'imshow(im);case 'sobel'BW = edge(rgb2gray(im),'sobel');imshow(BW);case 'prewitt'BW = edge(rgb2gray(im),'prewitt');imshow(BW);case 'canny'BW = edge(rgb2gray(im),'canny');imshow(BW);Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案end;开闭运算:se=[1,1,1;1,1,1;1,1,1;1,1,1]; %Structuring ElementI=rgb2gray(im);imshow(I,[]);title('Original Image');I=double(I);[im_height,im_width]=size(I);[se_height,se_width]=size(se);halfheight=floor(se_height/2);halfwidth=floor(se_width/2);[se_origin]=floor((size(se)+1)/2);image_dilation=padarray(I,se_origin,0,'both'); %Image to be used for dilationimage_erosion=padarray(I,se_origin,256,'both'); %Image to be used for erosion %%%%%%%%%%%%%%%%%%%%% Dilation %%%%%%%%%%%%%%%%%%%%%for k=se_origin(1)+1:im_height+se_origin(1)for kk=se_origin(2)+1:im_width+se_origin(2)dilated_image(k-se_origin(1),kk-se_origin(2))=max(max(se+image_dilation(k-se_origin(1):k+halfh eight-1,kk-se_origin(2):kk+halfwidth-1)));endendfigure;imshow(dilated_image,[]);title('Image after Dilation'); %%%%%%%%%%%%%%%%%%%% Erosion %%%%%%%%%%%%%%%%%%%%se=se';for k=se_origin(2)+1:im_height+se_origin(2)for kk=se_origin(1)+1:im_width+se_origin(1)eroded_image(k-se_origin(2),kk-se_origin(1))=min(min(image_erosion(k-se_origin(2):k+halfwidth -1,kk-se_origin(1):kk+halfheight-1)-se));endendfigure;imshow(eroded_image,[]);title('Image after Erosion'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Opening(Erosion first, then Dilation) %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%se=se';image_dilation2=eroded_image; %Image to be used for dilationfor k=se_origin(1)+1:im_height-se_origin(1)for kk=se_origin(2)+1:im_width-se_origin(2)opening_image(k-se_origin(1),kk-se_origin(2))=max(max(se+image_dilation2(k-se_origin(1):k+hal fheight-1,kk-se_origin(2):kk+halfwidth-1)));endendfigure;imshow(opening_image,[]);title('Opening Image'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Closing(Dilation first, then Erosion) %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%se=se';image_erosion2=dilated_image; %Image to be used for erosionfor k=se_origin(2)+1:im_height-se_origin(2)for kk=se_origin(1)+1:im_width-se_origin(1)closing_image(k-se_origin(2),kk-se_origin(1))=min(min(image_erosion2(k-se_origin(2):k+halfwidt h-1,kk-se_origin(1):kk+halfheight-1)-se));endendfigure;imshow(closing_image,[]);title('Closing Image');Warning: Image is too big to fit on screen; displaying at 31% scale.> In truesize>Resize1 at 308In truesize at 44In imshow at 161图像的直方图归一化:I=imread(‘red.bmp’);%读入图像figure;%打开新窗口[M,N]=size(I);%计算图像大小[counts,x]=imhist(I,32);%计算有32个小区间的灰度直方图counts=counts/M/N;%计算归一化灰度直方图各区间的值stem(x,counts);%绘制归一化直方图图像平移:I=imread('shuichi.jpg');se=translate(strel(1),[180 190]);B=imdilate(I,se);figure;subplot(1,2,1),subimage(I);title('原图像');subplot(1,2,2),subimage(B);title('平移后图像');图像的转置;A=imread('nir.bmp');tform=maketform('affine',[0 1 0;1 0 0;0 0 1]);B=imtransform(A,tform,'nearest');figure;imshow(A);figure;imshow(B);imwrite(B,'nir转置后图像.bmp');图像滤波:B = imfilter(A,H,option1,option2,...)或写作g = imfilter(f, w, filtering_mode, boundary_options, size_options)其中,f为输入图像,w为滤波掩模,g为滤波后图像。
matlab程序大全

数值计算类题目1 求解以下线性代数方程:123102211313121x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦A=[1,0,2;1,1,3;3,1,2]; B=[2,1,1]'; X=inv(A)*B2 已知矩阵013=121542⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦A ,218=414332⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦B 试分别求出A 阵和B 阵的秩、转置、行列式、逆矩阵以及特征值。
A=[0 1 3;1 2 1;5 4 2];B=[2 1 8;4 1 4;3 3 2];A1=rank(A) B1=rank(B) A2=A.' B2=B.' A3=det(A) B3=det(B) A4=inv(A) B4=inv(B) A5=eig(A) B5=eig(B)3 已知矩阵013=121542⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦A ,218=414332⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦B 在Command 窗口中分别求出2C =A 、D 矩阵为A 中每个元素平方组成的矩阵、E 矩阵为A 阵乘以B 阵、F 矩阵为A 阵和B 阵数组乘积(即:对应元素分别相乘的积构成的矩阵)。
A=[0 1 3;1 2 1;5 4 2];B=[2 1 8;4 1 4;3 3 2]; C=A^2D=A.^2 E=A*B F=A.*B4 求复数矩阵13573623243i i i i i i +-+⎡⎤=⎢⎥++-⎣⎦C 的转置C1与共轭转置C2。
A=[1 5 7;6 3 4];B=[3 -1 3;2 2 -3];C=A+B*i C1=C.' C2=C'5 假设a 、b 、c 和d 的定义如下:⎢⎣⎡=21a ⎥⎦⎤10; ⎢⎣⎡-=01b⎥⎦⎤12; ⎥⎦⎤⎢⎣⎡=23c ; 5=d 分别写出下列表达式的运算结果。
(1) a*b (2) a*c (3) a.*d (4) a*dans = -1 2 -2 5 ans = 3 8 ans = 5 0 10 5 ans = 5 06 求解由下面四个方程组成的方程组。
MATLAB命令大全(A-Z)

A aabs 绝对值, 模acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割all 所有元素均非零则为真alpha 透明控制angle 相角ans 最新表达式的运算结果any 有非零元则为真area 面域图asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦atan 反正切atan2 四象限反正切atanh 反双曲正切autumn 红、黄浓淡色axis 轴的刻度和表现B bbar 直方图binocdf 二项分布概率binopdf 二项分布累积概率binornd 产生二项分布随机数组blanks 空格符号bode 给出系统的对数频率曲线bone 蓝色调浓淡色阵box 坐标封闭开关break 终止最内循环brighten 控制色彩的明暗butter ButterWorth低通滤波器C ccaxis (伪)颜色轴刻度cd 设置当前工作目录cdf2rdf 复数对角型转换到实块对角型ceil 朝正无穷大方向取整cell 创建单元数组char 创建字符串数组或者将其他类型变量转化为字符串数组charfcn Maple函数Children 图形对象的子对象clabel 等高线标注class 判别数据类别clc 清除指令窗中显示内容clear 从内存中清除变量和函数clf 清除当前图形窗图形close 关闭图形窗collect 合并同类项Color 图形对象色彩属性colorbar 显示色条colorcube 三浓淡多彩交错色colordef 定义图形窗色彩colormap 设置色图comet 彗星状轨迹图comet3 三维彗星动态轨迹线图compass 射线图;主用于方向和速度cond 矩阵条件数conj 复数共轭continue 将控制转交给外层的for或while循环contour 等高线图contourf 填色等高线图conv 卷积和多项式相乘cool 青和品红浓淡色图copper 线性变化纯铜色调图corrcoef 相关系数cos 余弦cosh 双曲余弦cot 余切coth 双曲余切cov 协方差矩阵csc 余割csch 双曲余割cumsum 元素累计和cumtrapz 梯形法累计积分D ddblquad 二重(闭型)数值积分指令deconv 解卷和多项式相除del2 计算曲率demos 演示函数det 行列式的值diag 创建对角阵,抽取对角向量diff 求导数,差分和近似微分digits 控制符号数值的有效数字位数dir 列出目录清单dirac 单位冲激函数disp 显示矩阵和文字内容disttool 概率分布计算交互界面doc 列出指定工具包中所有函数名docsearch 进行多词条检索double 把符号常数转化为16位相对精度的浮点数值对象drawnow 刷新屏幕dsolve 求解符号常微分方程E eedit 矩阵编辑器,打开M文件Ei maple 指数积分eig 矩阵特征值和特征向量end 数组的最大下标,结束for,while,if 语句eps 浮点相对误差EraseMode 图形对象属性error 显示错误信息exit 关闭MATLABexp 指数expand 对指定项展开expm 矩阵指数eye 单位阵ezcontour 画等位线ezcontourf 画填色等位线ezmesh 画网线图ezmeshc 画带等位线的网线图ezplot 绘制符号表达式的二维图形ezplot3 画三维曲线ezpolar 画极坐标曲线ezsurf 画曲面图ezsurfc 画带等位线的曲面图F ffactor 进行因式或因子分解false 按指定大小创建全0逻辑数组feather 从X轴出发的复数向量图,羽毛图feval 函数宏指令fill 多边形填色图find 寻找非数单下标标识findsym 确认表达式中自由符号变量fix 朝零方向取整flag 红-白-蓝-黑交错色图fliplr 矩阵的左右翻转flipud 矩阵的上下翻转floor 朝负无穷大方向取整fminbnd 非线性函数在某区间中极小值fminsearch 单纯形法求多元函数极值点指令for (end) 按规定次数重复执行语句format 设置数据输出格式fourier Fourier变换fsolve 解非线性方程组的最简单格式function 函数文件头functions 观察函数句柄内涵function handle 函数句柄funfun 数值泛函函数和ODE解算器funm 计算一般矩阵函数fzero 单变量函数的零点G ggallery 产生测试矩阵gca 获得当前轴的柄gcf 获得当前图的柄general 通用指令get 获得图柄getframe 获得影片动画图象的帧ginput 用鼠标在图上获取数据global 定义全局变量gradient 梯度gray 线性灰度grid on/off 画坐标网格线H hheaviside 单位阶跃函数help 在线帮助指令helpbrowser 超文本文档帮助信息helpdesk 超文本文档帮助信息helpwin 打开在线帮助窗hidden 网线图消隐开关hist 统计频数直方图histfit 带拟曲线的统计频数直方图hold on/off 图形的保持horner 转换成嵌套形式hot 黑-红-黄-白交错色图hsv 饱和色彩图I ii, j 虚数单位if end 条件执行语句if-else-end 程序分支控制ifourier Fourier反变换ilaplace Laplace反变换imag 复数虚部image 图像impulse 给出系统的冲激响应ind2sub 据单下标换算出全下标inf 或 Inf 无穷大inline 创建内联函数input 提示键盘输入int 计算积分int2str 整数转换为字符串inv 矩阵的逆invhilb Hilbert矩阵法求逆阵isa 判断指定变量类别ischar 若是字符串则为真isempty 若是空矩阵则为真isfinite 若是有限数则为真isglobal 若是全局变量则为真ishandle 是否图柄isinf 若是无穷大则为真isletter 串中是字母则为真islogical 若是逻辑数则为真isnan 若为非数则为真isnumeric 若是数值则为真isolate maple的特殊指令isprime 是否质数isreal 若是实数矩阵则为真isspace 串中是空格则为真iztrans Z反变换J jjacobian Jacobian 矩阵jet 变异HSV色图jordan Jordan分解K kkeyboard 键盘获得控制权L llaplace Laplace变换legend 形成图例说明length 确定数组长度light 灯光控制lighting 设置照明模式limit 求极限line 创建线对象LineStyle 图形线对象属性-线型LineWidth 图形属性-线宽linmod2 从SIMULINK模型得到系统的状态方程linspace 线性等分向量load 从磁盘调入数据变量Location 图形对象属性-位置log 自然对数log10 常用对数log2 以2为底的对数logical 将数值转化为逻辑值logspace 对数等分向量lookfor 关键词检索M mmagic 魔方阵maple 进入MAPLE工作空间计算Marker 图形对象属性-点形状MarkerEdge-Color 图形对象属性-点边界色彩MarkerFace-Color 图形对象属性-点域色彩MaekerSize 图形对象属性-点大小material 对象材质max 最大值md 创建目录mean 平均值mesh 三维网线图meshgrid 用于三维曲面的分格线坐标mfun 对MAPLE中若干经典特殊函数的数值计算mfunlist MAPLE经典特殊函数列表mhelp 查阅Maple中的库函数及其调用方法min 最小值minreal 状态方程最小实现mkdir 创建目录mod 模数求余more 命令窗口分页输出的控制开关movie 播放影片动画moviein 影片动画内存初始化mtaylor Taylor级数展开N nNaN或nan 非数nargin 函数输入量的个数nargout 函数输出量的个数ndims 数组的维数norm 矩阵或向量范数normcdf 正态分布累计概率normpdf 服从N分布的随机变量取值x的概率密度normrnd 产生服从N分布的随机数组notebook 创建或打开M-book文件null 零空间num2str 把数值转换为字符串numden 提取公因式O oode45 高阶法解微分方程ones 全1 数组optimsetorth 值空间P ppack 合并工作内存中的碎块pascal Pascal 矩阵path 控制MATLAB的搜索路径pathtool 修改搜索路径pause 暂停pcolor 用颜色反映数据的伪色图peaks 产生peaks图形数据pi 3.1415926535897….pie 饼形统计图pink 淡粉红色图阵plot 直角坐标下线性刻度曲线plot3 三维直角坐标曲线图plotyy 双纵坐标图polar 极坐标曲线图poly 特征多项式,由根创建多项式poly2sym 将多项式转换为符号多项式polyfit 多项式拟合polyval 求多项式的值polyvalm 求矩阵多项式的值pow2 2的幂pretty 习惯方式显示prism 光谱色图阵prod 元素积Q qquad 低阶法数值积分quadl 高阶法数值积分quit 退出MATLABquiver 二维箭头图;主用于场强、流向R rrand 均匀分布随机数组randn 正态分布随机数组random 产生各种分布随机数组randsrc 产生均布数组rank 秩real 复数实部realmax 最大浮点数realmin 最小正浮点数rem 求余数repmat 铺放模块数组reshape 矩阵变维residue 求部分分式表达return 返回roots 求多项式的根rose 频数扇形图;主用于统计rot90 矩阵逆时针旋转90度rotate 旋转指令round 四舍五入取整rref 转换为行阶梯形S ssave 把内存变量存入磁盘sec 正割sech 双曲正割set 设置图形对象属性shading 图形渲染模式shg 显示图形窗sign 函数符号,符号函数simple 运用各种指令化简符号表达式simplify 恒等式简化simulink 打开SIMULINK集成环境sin 正弦sinh 双曲正弦size 确定数组大小slice 切片图solve 求解代数方程组sphere 产生球面数据spinmap 颜色周期性变化操纵spring 青、黄浓淡色sqrt 平方根square 轴属性为方型ss 产生状态方程LTI对象stairs 阶梯形曲线图std 标准差stem 杆图stem3 三维离散杆图str2func 创建函数句柄(punct)strcmp 比较字符串String 图形对象属性-字符串subexpr 运用符号变量置换子表达式subplot 创建子图subs 通用置换指令sum 元素和summer 绿、黄浓淡色图阵surf 三维表面图surfc 带等高线的三维表面图switch-case 多个条件分支sym 产生符号对象syms 定义基本符号对象symsum 符号序列的求和T ttan 正切tanh 双曲正切taylor Taylor级数text 图形上文字标注tf 产生传递函数LTI对象tfdata 从对象中提取传递函数分子分母多项式系数tic 秒表起动title 图形名toc 秒表终止和显示trace 迹trapz 梯形数值积分true 按指定大小创建全1逻辑数组triplequad 三重(闭型)数值积分指令type 显示文件内容V vvar 求方差version MATLAB 版本view 设定3-D图形观测点vpa 给出数值型符号结果W wwhat 列出当前目录上的M、MAT、MEX文件which 确定指定文件所在的目录while end 不确定次数重复执行语句whitebg 图形底色控制who 列出工作内存中的变量名whos 列出工作内存中的变量细节winter 蓝、绿浓淡色X xxlabel X轴名标注xor 异或Y yYcolor 图形对象属性-纵轴颜色ylabel Y轴名标注Z zzeros 全零矩阵zlabel Z轴名标注zoom 二维图形的变焦放大ztrans Z变换Simulink模块Add 求和模块Breaker 开关Current Measurement 电流测量器Dc V oltage Source 直流电压源Discrete Filter 离散滤波器模块Gain 增益模块In1 输入端口模块Integrator 连续函数积分Out1 输出端口模块Parallel RLC Branch RLC并联支路PowerguiProduct 乘法器Random SourceScope 示波模块Series RLC Branch RLC串联支路Simulink SIMULINK基本库Sine Wave 正弦波输出Step 阶跃输出Transfer Fcn 传递函数模块V oltage Measurement 电压测量器一、MATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示rats(x):将实数x化为多项分数展开sign(x):符号函数 (Signum function)。
【精品】MATLAB程序应用大全精编版

1.3 MATLAB 第六版外观
3. Current Directory Browser 当前目录浏览器窗口默认地出现在MATLAB界面左上方后台,用来设置当前目录 ,可以随时显示当前目录下的MATLAB文件的信息,包括文件名、文件类型、最 后修改时间和文件说明等。并可以复制、编辑和运行M文件,以及加载MAT类型 的数据文件。 4. Workspace Browser 工作空间浏览器窗口在MATLAB界面左上方后台,用来显示MATLAB工作空间中 的变量名、数据结构、类型、大小和在内存中的字节数。在该窗口中,还可以对 工作空间中的变量进行观察、编辑、提取和保存。
SIMULINK库浏览器:SIMULINK是一个仿真工具,它不是MATLAB的一个部分 ,所有如果您没有安装SIMULINK,就不会有此图标。
在线帮助:此图标打开MATLAB的在线帮助窗口,您可以一路单击所要的类别或 命令,直到得到所需要的帮助信息。
中北大学 信息与通信工程学院
1.3 MATLAB 第六版外观
中北大学 信息与通信工程学院
2 初探MATLAB
2.1 使用变量与基本运算 2.2 向量与矩阵的处理 2.3 常用数学函数 2.4 程序流程控制
2.5 M文件 2.6 搜索路径 2.7 工作空间与变量
本章介绍 MATLAB 的基本环境和操作,如果您是MATLAB的初学者,建议您先 熟悉本章各节的内容,能够帮助您很快进入状态。当然,如果您是MATLAB老手 ,可以直接跳到后面各章节。
[A; 1 1] %在A中加入第4行
ans=
1
3
4
6
7
9
1
1
%取出矩阵的一部分形成一个新矩阵
B=A(1:2,1:2)
(完整word版)MatLab代码大全

第2章图像获取2.3.2 二维连续傅里叶变换例2.2figure(1); %建立图形窗口1[u,v] = meshgrid(-1:0.01:1); %生成二维频域网格F1 = abs(sinc(u.*pi));F2 = abs(sinc(v.*pi));F=F1.*F2; %计算幅度频谱F=|F(u,v)|surf(u,v,F); %显示幅度频谱,如图2.3(b)shading interp; %平滑三维曲面上的小格axis off; %关闭坐标系figure(2); %建立图形窗口2F1=histeq(F); %扩展F的对比度以增强视觉效果imshow(F1); %用图像来显示幅度频谱,如图2.3(c)第3章图像变换3.4.4 二维FFT的MATLAB实现例3.2 简单图像及其傅里叶变换MATLAB程序:%建立简单图像d并显示之d = zeros(32,32); %图像大小32⨯32d(13:20,13:20) = 1; %中心白色方块大小为8⨯8figure(1); %建立图形窗口1imshow(d,'notruesize');%显示图像d如图3.5(a)所示%计算傅里叶变换并显示之D = fft2(d); %计算图像d的傅里叶变换,fft2(d) = fft(fft(d).').'figure(2); %建立图形窗口2imshow(abs(D),[-1 5],'notruesize'); %显示图像d的傅里叶变换谱如3.5(b)所示例3.3 MATLAB图像及其傅里叶变换谱MATLAB程序:figure(1);load imdemos saturn2; %装入MA TLAB图像saturn2imshow(saturn2); %显示图像saturn2如图3.6(a)所示figure(2);S= fftshift(fft2(saturn2)); %计算傅里叶变换并移位imshow(log(abs(S)),[ ]); %显示傅里叶变换谱如3.6(b)所示例3.4 真彩图像及其傅里叶变换谱MATLAB程序:figure(1);A=imread('image1.jpg'); %装入真彩图像,见图1.1(b)B=rgb2gray(A); %将真彩图像转换为灰度图像imshow(B); %显示灰度图像如图3.7(a)所示C=fftshift(fft2(B)); %计算傅里叶变换并移位figure(2);imshow(log(abs(C)),[ ]); %显示傅里叶变换谱如3.7(b)所示3.5.4 离散余弦变换的MATLAB实现例3.5 计算并显示真彩图像余弦变换的MATLAB程序如下:RGB=imread('image2.jpg'); %装入真彩图像figure(1);imshow(RGB); %显示彩色图像GRAY=rgb2gray(RGB); %将真彩图像转换为灰度图像figure(2);imshow(GRAY); %显示灰度图像如图3.10(a)所示DCT=dct2(GRAY); %进行余弦变换figure(3);imshow(log(abs(DCT)),[ ]); %显示余弦变换如图3.10(b)所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.全景图到穹景图这个程序我最初是用FreeImage写的,这两天改成了matlab,再不贴上来,我就要忘了。
看到一篇文章有这样的变换,挺有意思的,就拿来试了一下,文章点此。
全景图到穹顶图变换,通俗的说就是将全景图首尾相接做成一个圆环的样子。
先看下面这张图:下面的矩形就是我们要处理的全景图,上面的矩形是变换后的图像。
下面图像的底边对应穹顶图的内圆,顶边对应穹顶图的外圆,当然,反过来也是可以的。
程序流程:1.定义穹顶图内圆和外圆的半径,变换后的像素就填充在这个内外半径的圆环中。
2.遍历穹顶图,当所处理当前像素位于圆环内,则通过极坐标反变换去全景图中寻找相应位置的像素进行填充。
3.遍历完图像就行了。
用的技巧和图像旋转或放大缩小都是类似的。
处理结果:原图:结果:matlab代码如下:clear all;close all;clc;img=imread('pan.jpg');imshow(img);[m,n]=size(img);r1=100; %内环半径r2=r1+m; %外环半径imgn=zeros(2*r2,2*r2);[re_m,re_n]=size(imgn);for y=1:re_mfor x=1:re_ndis_x=x-re_n/2;dis_y=y-re_m/2;l=sqrt(dis_x^2+dis_y^2);if l<=r2 && l>=r1theta=0;if y>re_m/2theta=atan2(dis_y,dis_x);endif y<re_m/2theta=pi+atan2(-dis_y,-dis_x);endif y==re_m/2theta=atan2(dis_y,dis_x)+0.0001;endxx=ceil(n*theta/(2*pi));yy=ceil(l-r1);if yy>=1 && yy<=m && xx>=1 && xx<=nimgn(y,x)=img(yy,xx);endendendendfigure;imshow(imgn,[])最后要说的是,一般我们要是有一张全景图,通常会用cubic映射,将图像变换为立方体的六个面,然后通过图形学方法贴到立方体上,就能做出类似谷歌街景的样子。
cubic映射应该才是全景图最常用的处理方法,不过那又是另一类变换了。
2.GUI保存图像% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global src_img;[filename,pathname] =uiputfile({'*.jpg';'*.bmp';'*.gif';'*.png';'*.tif'}, 'Write Pic');str=[pathname filename];if str~=0imwrite(src_img,str);end3.GUI读入图像% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename,pathname] =uigetfile({'*.*';'*.jpg';'*.bmp';'*.gif';'*.png';'*.tif'},'ReadPic');str = [pathname filename];global src_img;if ~isequal([pathname,filename],[0,0])src_img = imread(str);axes(handles.axes1);imshow(src_img);end4. GUI选项卡1.在这个网址下载一个工具包,里面应该有四个文件:tabselectionfcp.p、tabselectionfcn.m、tabpanel.p和tabpanel.m,显然代码用.p格式进行加密了。
2.建立一个空GUI文件,就起名kong.fig吧。
3.在kong.fig上画一个Static Text,默认的tag为text1。
4.终端运行tabpanel('kong.fig','text1');命令,得到如下界面:5.点击add panel就能添加选项卡了,如图:6.选中不同的选项卡,点击edit,就能进入常见的GUI编辑模式:7.编辑完保存下就行了,所有的功能都在kong.m文件中实现。
注意,不同选项卡添加的组建时,tag会有重复,因此需要修改tag名。
8.终端输入kong就能得到如下结果:5. structure tensor结构张量根据结构张量能区分图像的平坦区域、边缘区域与角点区域。
此算法也算是计算机科学最重要的32个算法之一了。
链接的文章中此算法名称为Strukturtensor算法,不过我搜索了一下,Strukturtensor这个单词好像是德语,翻译过来就是structure tensor结构张量了。
此处所说的张量不是相对论或黎曼几何里的张量,黎曼几何的张量好多论文都叫张量场了。
也不是数学界还没研究明白的对矩阵进行扩展的高阶张量,主要是张量分解。
这里的结构张量就是一个矩阵,一个对图像像素进行组织的数据结构而已。
像素组织而成的矩阵如下:这个公式太常见了,在harris角点检测中就用到了。
其中Ix,Iy就是原对原图像在x和y 方向求得的偏导。
然后求矩阵E的行列式K和迹H。
然后根据K和H的关系就能区分图像的区域模式了。
模式分以下三类:平坦区域:H=0;边缘区域:H>0 && K=0;角点区域:H>0 && K>0;harris角点检测就用到了第三类判断。
当然,在实际应用的时候H和K的值肯定都不会是理想,所以我用的都是近似判断。
处理结果如下:原图:平坦区域:边缘区域:角点区域(好像也不全角点,求角点还是harris好了):结构张量行列式与迹的关系:其中红框为平坦区域,黄框为边缘区域,铝框为角点区域。
matlab代码如下:clear all; close all; clc;img=double(imread('lena.jpg'));[m n]=size(img);imshow(img,[])[Ix Iy]=gradient(img);Ix2=Ix.^2;Iy2=Iy.^2;Ixy=Ix.*Iy;k=1;lambda=zeros(m*n,2);for i=1:mfor j=1:nst=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; %结构张量 K=det(st); %求行列式H=trace(st); %求迹%所有的判断都是近似的% if H<50 %认为是平坦区域 % if H>50 && abs(K)<0.01*10^(-9) %认为是边缘区域if H>50 && abs(K)>0.01*10^(-9) %认为是角点区域 img(i,j)=255;endlambda(k,:)=[K H];k=k+1;endendfigure;plot(lambda(:,1),lambda(:,2),'.');ylabel('trace');xlabel('det');figure;imshow(img,[])6.模糊集图像增强算法有很多变种。
不过主要就是以下三步。
1.设计隶属度函数将图像从空间域变换到模糊集域。
2.设计模糊增强算子,在模糊集域对图像进行处理。
3.根据第1步的隶属度函数重新将图像从模糊集域变换到空间域。
这和频域处理中的变换反变换不是很像么。
我使用的隶属度函数和模糊增强算子在这篇论文里,也算相关算法的经典论文了。
处理结果如下:原图:模糊集增强后:matlab代码如下:clear all; close all; clc;img=double(imread('lena.jpg'));imshow(img,[])[m n]=size(img);Fe=1; %控制参数Fd=128;xmax=max(max(img));u=(1+(xmax-img)/Fd).^(-Fe); %空间域变换到模糊域%也可以多次迭代for i=1:m %模糊域增强算子for j=1:nif u(i,j)<0.5u(i,j)=2*u(i,j)^2;elseu(i,j)=1-2*(1-u(i,j))^2;endendendimg=xmax-Fd.*(u.^(-1/Fe)-1); %模糊域变换回空间域figure;imshow(uint8(img));7.随机游走图像随机游走类似布朗运动,就是随机的向各个方向走吧。
虽然代码没什么技术含量,不过产生的图像实在太漂亮了,所以还是贴上来吧。
产生的图像:matlab代码如下:clear all;close all;clcn=70000; %游走的步数。
也是图像中像素个数,有些位置可能重复,所以白像素小于等于nx=0; %初始x坐标y=0; %初始y坐标pix=zeros(n,2); %游走产生的像素坐标neighbour=[-1 -1;-10;-11;0 -1;01;1 -1;10;11]; %当前像素邻域for i=1:nr=floor(1+8*rand()); %八邻域随机选一个来走y=y+neighbour(r,1); %y方向游走x=x+neighbour(r,2); %x方向游走pix(i,:)=[y x]; %保存坐标endminy=min(pix(:,1)); %图像坐标不可能为负,所以找最小值再整体提升为正minx=min(pix(:,2)); %同上pix(:,1)=pix(:,1)-miny+1; %像素坐标整体变为正pix(:,2)=pix(:,2)-minx+1;maxy=max(pix(:,1)); %找最大坐标值,为开辟图像做准备maxx=max(pix(:,2));img=zeros(maxy,maxx); %根据maxy、maxx产生图像for i=1:n %将游走的值赋给图像img(pix(i,1),pix(i,2))=1;endimshow(img)8.最大流/最小割学习这个算法是为学习图像处理中的图割算法做准备的。