二维几何变换代码-MATLAB

合集下载

MATLAB二维图形注释命令(zz)

MATLAB二维图形注释命令(zz)

MATLA‎B二维图形‎注释命令(zz)命令1 grid功能给二维或三‎维图形的坐‎标面增加分‎隔线。

该命令会对‎当前坐标轴‎的Xgri‎d,Ygrid‎,Zgrid‎的属性有影‎响。

用法grid on 给当前的坐‎标轴增加分‎隔线。

grid off 从当前的坐‎标轴中去掉‎分隔线。

grid 转换分隔线‎的显示与否‎的状态。

grid(axes_‎h andl‎e,on|off) 对指定的坐‎标轴axe‎s_han‎d le是否‎显示分隔线‎。

命令2 gtext‎功能在当前二维‎图形中用鼠‎标放置文字‎。

当光标进入‎图形窗口时‎,会变成一个‎大十字,表明系统正‎等待用户的‎动作。

用法 gtext‎('strin‎g') 当光标位于‎一个图形窗‎口内时,等待用户单‎击鼠标或键‎盘。

若按下鼠标‎或键盘,则在光标的‎位置放置给‎定的文字“strin‎g”h = gtext‎('strin‎g') 当用户在鼠‎标指定的位‎置放置文字‎“strin‎g”后,返回一个t‎e xt图形‎对象句柄给‎h。

命令3 legen‎d功能在图形上添‎加图例。

该命令对有‎多种图形对‎象类型(线条图,条形图,饼形图等)的窗口中显‎示一个图例‎。

对于每一线‎条,图例会在用‎户给定的文‎字标签旁显‎示线条的线‎型,标记符号和‎颜色等。

当所画的是‎区域(patch‎或surf‎a ce对象‎)时,图例会在文‎字旁显示表‎面颜色。

Matla‎b在一个坐‎标轴中仅仅‎显示一个图‎例。

图例的位置‎有几个因素‎决定,像遮挡的对‎象等,用户可以用‎鼠标拖动图‎例到恰当的‎位置,双击标签可‎以进入标签‎编辑状态。

用法 legen‎d('strin‎g1','strin‎g2',…)‎用指定的文‎字stri‎n g在当前‎坐标轴中对‎所给数据的‎每一部分显‎示一个图例‎。

legen‎d(h,'strin‎g1','strin‎g2',…)‎用指定的文‎字stri‎n g在一个‎包含于句柄‎向量h中的‎图形显示图‎例。

二维有限差分 代码 matlab

二维有限差分 代码 matlab

二维有限差分代码MATLAB一、介绍有限差分方法是一种常用的数值求解偏微分方程的方法,它将连续的偏微分方程转化为离散的代数方程。

其中,二维有限差分是在二维空间中对偏微分方程进行离散化求解的方法。

MATLAB是一种广泛应用于科学计算和工程领域的编程语言和软件评台,它提供了丰富的工具箱和函数,可以方便地实现二维有限差分方法。

二、二维有限差分的基本原理假设要求解的偏微分方程为二维波动方程:∂^2u/∂t^2 = c^2(∂^2u/∂x^2 + ∂^2u/∂y^2)其中,u代表波动的振幅,t代表时间,x、y分别代表二维空间中的坐标,c为波速。

利用有限差分方法对偏微分方程进行离散化,可以得到一组代数方程。

假设在二维空间中取N个网格点,将空间进行离散化,可得到离散的网格点坐标(xi, yj),其中i,j=1,2,...,N。

对时间进行离散化,得到时间步长Δt,可得到离散的时间点tk,其中k=0,1,2,...,M。

用中心差分格式离散化偏微分方程,可得到如下的差分方程:(u(i,j,tk+Δt) - 2u(i,j,tk) + u(i,j,tk-Δt)) / Δt^2 = c^2(u(i+1,j,tk) -2u(i,j,tk) + u(i-1,j,tk)) / Δx^2 + c^2(u(i,j+1,tk) - 2u(i,j,tk) + u(i,j-1,tk)) / Δy^2将上述差分方程用适当的边界条件离散化,就可以得到求解二维波动方程的代数方程组。

三、 MATLAB实现二维有限差分MATLAB提供了丰富的工具箱和函数,可以方便地实现二维有限差分方法。

以下是使用MATLAB实现二维有限差分的基本步骤:1. 网格的生成首先需要生成二维空间中的网格点,可以使用meshgrid函数生成网格点的坐标。

假设在x、y方向上分别取N个网格点,则可以用如下的代码生成网格点坐标:```MATLABx = linspace(0, L, N);y = linspace(0, W, N);[X, Y] = meshgrid(x, y);```其中,L为空间在x方向上的长度,W为空间在y方向上的宽度。

数学2-用MATLAB绘制二维-三维图形(lq)

数学2-用MATLAB绘制二维-三维图形(lq)
ans = 8 9
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,
列j,和元素的值v(按所在位置先后 顺序输出)
A=[3 2 0; -5 0 7; 0 0 1]; [i,j,v]=find(A)
i= 1 2 1 2 3 j= 1 1 2 3 3 v = 3 -5 2 7 1
[X,Y]=meshgrid(x,y) 3)根据函数表达式生成全部网格节点出对应的函数值矩阵z: z=f(X,Y) 4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面: mesh(X,Y,Z) surf(X,Y,Z) shading flat %去除网格线。
例2-7画出矩形域[-1,1]×[-1,1]旋转抛物面:z=x2+y2. x=linspace(-1,1,100); y=x; [X,Y]=meshgrid(x,y); %生成矩形区[-1,1]×[-1,1]的网格坐标矩阵 Z=X.^2+Y.^2; subplot(1,2,1) mesh(X,Y,Z); subplot(1,2,2) surf(X,Y,Z); shading flat; %对曲面z=x2现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
用matlab绘制二维、三维图形
2.1二维图形的绘制
2.1.1 二维绘图的基本命令 matlab中,最常用的二维绘图命令是plot。
使用该命令,软件将开辟一个图形窗口,并 画出连接坐标面上一系列点的连线。
例2-5 采用不同形式(直角坐标、参数、极坐标),画出 单位圆x2+y2=1的图形。
分析:对于直角坐标系方程,y= 1 x2,对于参数方 程x=cost,y=sint,t[0,2 pi] ,利用plot(x,y)命令可以实现。 而在极坐标系中单位圆为r=1(1+0t),利用polar(t,r)命 令实现。

matlab指令大全(按字母)

matlab指令大全(按字母)

MATLAB命令汇总(按字母排列)2009-02-13 13:17A aabs 绝对值、模、字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象几何位置排列工具all 所有元素非零为真angle 相角ans 表达式计算结果的缺省变量名any 所有元素非全零为真area 面域图argnames 函数M文件宗量名asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦assignin 向变量赋值atan 反正切atan2 四象限反正切atanh 反双曲正切autumn 红黄调秋色图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的高层指令B bbar 二维直方图bar3 三维直方图bar3h 三维水平直方图barh 二维水平直方图base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串bone 蓝色调黑白色图阵box 框状坐标轴break while 或for 环中断指令brighten 亮度控制C ccapture (3版以前)捕获当前图形cart2pol 直角坐标变为极或柱坐标cart2sph 直角坐标变为球坐标cat 串接成高维数组caxis 色标尺刻度cd 指定当前目录cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整cell 创建元胞数组cell2struct 元胞数组转换为构架数组celldisp 显示元胞数组内容cellplot 元胞数组内部结构图示char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数chi2rnd 分布随机数发生器chol Cholesky分解clabel 等位线标识cla 清除当前轴class 获知对象类别或创建对象clc 清除指令窗clear 清除内存变量和函数clf 清除图对象clock 时钟colorcube 三浓淡多彩交叉色图矩阵colordef 设置色彩缺省值colormap 色图colspace 列空间的基close 关闭指定窗口colperm 列排序置换向量comet 彗星状轨迹图comet3 三维彗星轨迹图compass 射线图compose 求复合函数cond (逆)条件数condeig 计算特征值、特征向量同时给出条件数condest 范 -1条件数估计conj 复数共轭contour 等位线contourf 填色等位线contour3 三维等位线contourslice 四维切片等位线图conv 多项式乘、卷积cool 青紫调冷色图copper 古铜调色图cos 余弦cosh 双曲余弦cot 余切coth 双曲余切cplxpair 复数共轭成对排列csc 余割csch 双曲余割cumsum 元素累计和cumtrapz 累计梯形积分cylinder 创建圆柱D ddblquad 二重数值积分deal 分配宗量deblank 删去串尾部的空格符dec2base 十进制转换为X进制dec2bin 十进制转换为二进制dec2hex 十进制转换为十六进制deconv 多项式除、解卷delaunay Delaunay 三角剖分del2 离散Laplacian差分demo Matlab演示det 行列式diag 矩阵对角元素提取、创建对角阵diary Matlab指令窗文本内容记录diff 数值差分、符号微分digits 符号计算中设置符号数值的精度dir 目录列表disp 显示数组display 显示对象内容的重载函数dlinmod 离散系统的线性化模型dmperm 矩阵Dulmage-Mendelsohn 分解dos 执行DOS 指令并返回结果double 把其他类型对象转换为双精度数值drawnow 更新事件队列强迫Matlab刷新屏幕dsolve 符号计算解微分方程E eecho M文件被执行指令的显示edit 启动M文件编辑器eig 求特征值和特征向量eigs 求指定的几个特征值end 控制流FOR等结构体的结尾元素下标eps 浮点相对精度error 显示出错信息并中断执行errortrap 错误发生后程序是否继续执行的控制erf 误差函数erfc 误差补函数erfcx 刻度误差补函数erfinv 逆误差函数errorbar 带误差限的曲线图etreeplot 画消去树eval 串演算指令evalin 跨空间串演算指令exist 检查变量或函数是否已定义exit 退出Matlab环境exp 指数函数expand 符号计算中的展开操作expint 指数积分函数expm 常用矩阵指数函数expm1 Pade法求矩阵指数expm2 Taylor法求矩阵指数expm3 特征值分解法求矩阵指数eye 单位阵ezcontour 画等位线的简捷指令ezcontourf 画填色等位线的简捷指令ezgraph3 画表面图的通用简捷指令ezmesh 画网线图的简捷指令ezmeshc 画带等位线的网线图的简捷指令ezplot 画二维曲线的简捷指令ezplot3 画三维曲线的简捷指令ezpolar 画极坐标图的简捷指令ezsurf 画表面图的简捷指令ezsurfc 画带等位线的表面图的简捷指令F ffactor 符号计算的因式分解feather 羽毛图feedback 反馈连接feval 执行由串指定的函数fft 离散Fourier变换fft2 二维离散Fourier变换fftn 高维离散Fourier变换fftshift 直流分量对中的谱fieldnames 构架域名figure 创建图形窗fill3 三维多边形填色图find 寻找非零元素下标findobj 寻找具有指定属性的对象图柄findstr 寻找短串的起始字符下标findsym 机器确定内存中的符号变量finverse 符号计算中求反函数fix 向零取整flag 红白蓝黑交错色图阵fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 矩阵沿指定维翻转floor 向负无穷取整flops 浮点运算次数flow Matlab提供的演示数据fmin 求单变量非线性函数极小值点(旧版)fminbnd 求单变量非线性函数极小值点fmins 单纯形法求多变量函数极小值点(旧版)fminunc 拟牛顿法求多变量函数极小值点fminsearch 单纯形法求多变量函数极小值点fnder 对样条函数求导fnint 利用样条函数求积分fnval 计算样条函数区间内任意一点的值fnplt 绘制样条函数图形fopen 打开外部文件for 构成for环用format 设置输出格式fourier Fourier 变换fplot 返函绘图指令fprintf 设置显示格式fread 从文件读二进制数据fsolve 求多元函数的零点full 把稀疏矩阵转换为非稀疏阵funm 计算一般矩阵函数funtool 函数计算器图形用户界面fzero 求单变量非线性函数的零点G ggamma 函数gammainc 不完全函数gammaln 函数的对数gca 获得当前轴句柄gcbo 获得正执行"回调"的对象句柄gcf 获得当前图对象句柄gco 获得当前对象句柄geomean 几何平均值get 获知对象属性getfield 获知构架数组的域getframe 获取影片的帧画面ginput 从图形窗获取数据global 定义全局变量gplot 依图论法则画图gradient 近似梯度gray 黑白灰度grid 画分格线(grid on 和 grid off)griddata 规则化数据和曲面拟合gtext 由鼠标放置注释文字guide 启动图形用户界面交互设计工具H hharmmean 调和平均值help 在线帮助helpwin 交互式在线帮助helpdesk 打开超文本形式用户指南hex2dec 十六进制转换为十进制hex2num 十六进制转换为浮点数hidden 透视和消隐开关hilb Hilbert矩阵hist 频数计算或频数直方图histc 端点定位频数直方图histfit 带正态拟合的频数直方图hold 当前图上重画的切换开关horner 分解成嵌套形式hot 黑红黄白色图hsv 饱和色图I iif-else-elseif 条件分支结构ifft 离散Fourier反变换ifft2 二维离散Fourier反变换ifftn 高维离散Fourier反变换ifftshift 直流分量对中的谱的反操作ifourier Fourier反变换i, j 缺省的"虚单元"变量ilaplace Laplace反变换imag 复数虚部image 显示图象imagesc 显示亮度图象imfinfo 获取图形文件信息imread 从文件读取图象imwrite 把imwrite 把图象写成文件ind2sub 单下标转变为多下标inf 无穷大info MathWorks公司网点地址inline 构造内联函数对象inmem 列出内存中的函数名input 提示用户输入inputname 输入宗量名int 符号积分int2str 把整数数组转换为串数组interp1 一维插值interp2 二维插值interp3 三维插值interpn N维插值interpft 利用FFT插值intro Matlab自带的入门引导inv 求矩阵逆invhilb Hilbert矩阵的准确逆ipermute 广义反转置isa 检测是否给定类的对象ischar 若是字符串则为真isequal 若两数组相同则为真isempty 若是空阵则为真isfinite 若全部元素都有限则为真isfield 若是构架域则为真isglobal 若是全局变量则为真ishandle 若是图形句柄则为真ishold 若当前图形处于保留状态则为真isieee 若计算机执行IEEE规则则为真isinf 若是无穷数据则为真isletter 若是英文字母则为真islogical 若是逻辑数组则为真ismember 检查是否属于指定集isnan 若是非数则为真isnumeric 若是数值数组则为真isobject 若是对象则为真isprime 若是质数则为真isreal 若是实数则为真isspace 若是空格则为真issparse 若是稀疏矩阵则为真isstruct 若是构架则为真isstudent 若是Matlab学生版则为真iztrans 符号计算Z反变换J j , K kjacobian 符号计算中求Jacobian 矩阵jet 蓝头红尾饱和色jordan 符号计算中获得 Jordan标准型keyboard 键盘获得控制权kron Kronecker乘法规则产生的数组L llaplace Laplace变换lasterr 显示最新出错信息lastwarn 显示最新警告信息leastsq 解非线性最小二乘问题(旧版)legend 图形图例lighting 照明模式line 创建线对象lines 采用plot 画线色linmod 获连续系统的线性化模型linmod2 获连续系统的线性化精良模型linspace 线性等分向量ln 矩阵自然对数load 从MAT文件读取变量log 自然对数log10 常用对数log2 底为2的对数loglog 双对数刻度图形logm 矩阵对数logspace 对数分度向量lookfor 按关键字搜索M文件lower 转换为小写字母lsqnonlin 解非线性最小二乘问题lu LU分解M mmad 平均绝对值偏差magic 魔方阵maple &nb, sp; 运作 Maple格式指令mat2str 把数值数组转换成输入形态串数组material 材料反射模式max 找向量中最大元素mbuild 产生EXE文件编译环境的预设置指令mcc 创建MEX或EXE文件的编译指令mean 求向量元素的平均值median 求中位数menuedit 启动设计用户菜单的交互式编辑工具mesh 网线图meshz 垂帘网线图meshgrid 产生"格点"矩阵methods 获知对指定类定义的所有方法函数mex 产生MEX文件编译环境的预设置指令mfunlis 能被mfun计算的MAPLE经典函数列表mhelp 引出 Maple的在线帮助min 找向量中最小元素mkdir 创建目录mkpp 逐段多项式数据的明晰化mod 模运算more 指令窗中内容的分页显示movie 放映影片动画moviein 影片帧画面的内存预置mtaylor 符号计算多变量Taylor级数展开N nndims 求数组维数NaN 非数(预定义)变量nargchk 输入宗量数验证nargin 函数输入宗量数nargout 函数输出宗量数ndgrid 产生高维格点矩阵newplot 准备新的缺省图、轴nextpow2 取最接近的较大2次幂nnz 矩阵的非零元素总数nonzeros 矩阵的非零元素norm 矩阵或向量范数normcdf 正态分布累计概率密度函数normest 估计矩阵2范数norminv 正态分布逆累计概率密度函数normpdf 正态分布概率密度函数normrnd 正态随机数发生器notebook 启动Matlab和Word的集成环境null 零空间num2str 把非整数数组转换为串numden 获取最小公分母和相应的分子表达式nzmax 指定存放非零元素所需内存O oode1 非Stiff 微分方程变步长解算器ode15s Stiff 微分方程变步长解算器ode23t 适度Stiff 微分方程解算器ode23tb Stiff 微分方程解算器ode45 非Stiff 微分方程变步长解算器odefile ODE 文件模板odeget 获知ODE 选项设置参数odephas2 ODE 输出函数的二维相平面图odephas3 ODE 输出函数的三维相空间图odeplot ODE 输出函数的时间轨迹图odeprint 在Matlab指令窗显示结果odeset 创建或改写 ODE选项构架参数值ones 全1数组optimset 创建或改写优化泛函指令的选项参数值orient 设定图形的排放方式orth 值空间正交化P ppack 收集Matlab内存碎块扩大内存pagedlg 调出图形排版对话框patch 创建块对象path 设置Matlab搜索路径的指令pathtool 搜索路径管理器pause 暂停pcode 创建预解译P码文件pcolor 伪彩图peaks Matlab提供的典型三维曲面permute 广义转置pi (预定义变量)圆周率pie 二维饼图pie3 三维饼图pink 粉红色图矩阵pinv 伪逆plot 平面线图plot3 三维线图plotmatrix 矩阵的散点图plotyy 双纵坐标图poissinv 泊松分布逆累计概率分布函数poissrnd 泊松分布随机数发生器pol2cart 极或柱坐标变为直角坐标polar 极坐标图poly 矩阵的特征多项式、根集对应的多项式poly2str 以习惯方式显示多项式poly2sym 双精度多项式系数转变为向量符号多项式polyder 多项式导数polyfit 数据的多项式拟合polyval 计算多项式的值polyvalm 计算矩阵多项式pow2 2的幂ppval 计算分段多项式pretty 以习惯方式显示符号表达式print 打印图形或SIMULINK模型printsys 以习惯方式显示有理分式prism 光谱色图矩阵procread 向MAPLE输送计算程序profile 函数文件性能评估器propedit 图形对象属性编辑器pwd 显示当前工作目录Q qquad 低阶法计算数值积分quad8 高阶法计算数值积分(QUADL) quit 推出Matlab 环境quiver 二维方向箭头图quiver3 三维方向箭头图R rrand 产生均匀分布随机数randn 产生正态分布随机数randperm 随机置换向量range 样本极差rank 矩阵的秩rats 有理输出rcond 矩阵倒条件数估计real 复数的实部reallog 在实数域内计算自然对数realpow 在实数域内计算乘方realsqrt 在实数域内计算平方根realmax 最大正浮点数realmin 最小正浮点数rectangle 画"长方框"rem 求余数repmat 铺放模块数组reshape 改变数组维数、大小residue 部分分式展开return 返回ribbon 把二维曲线画成三维彩带图rmfield 删去构架的域roots 求多项式的根rose 数扇形图rot90 矩阵旋转90度rotate 指定的原点和方向旋转rotate3d 启动三维图形视角的交互设置功能round 向最近整数圆整rref 简化矩阵为梯形形式rsf2csf 实数块对角阵转为复数特征值对角阵rsums Riemann和S ssave 把内存变量保存为文件scatter 散点图scatter3 三维散点图sec 正割sech 双曲正割semilogx X轴对数刻度坐标图semilogy Y轴对数刻度坐标图series 串联连接set 设置图形对象属性setfield 设置构架数组的域setstr 将ASCII码转换为字符的旧版指令sign 根据符号取值函数signum 符号计算中的符号取值函数sim 运行SIMULINK模型simget 获取SIMULINK模型设置的仿真参数simple 寻找最短形式的符号解simplify 符号计算中进行简化操作simset 对SIMULINK模型的仿真参数进行设置simulink 启动SIMULINK模块库浏览器sin 正弦sinh 双曲正弦size 矩阵的大小slice 立体切片图solve 求代数方程的符号解spalloc 为非零元素配置内存sparse 创建稀疏矩阵spconvert 把外部数据转换为稀疏矩阵spdiags 稀疏对角阵spfun 求非零元素的函数值sph2cart 球坐标变为直角坐标sphere 产生球面spinmap 色图彩色的周期变化spline 样条插值spones 用1置换非零元素sprandsym 稀疏随机对称阵sprank 结构秩spring 紫黄调春色图sprintf 把格式数据写成串spy 画稀疏结构图sqrt 平方根sqrtm 方根矩阵squeeze 删去大小为1的"孤维" sscanf 按指定格式读串stairs 阶梯图std 标准差stem 二维杆图step 阶跃响应指令str2double 串转换为双精度值str2mat 创建多行串数组str2num 串转换为数strcat 接成长串strcmp 串比较strjust 串对齐strmatch 搜索指定串strncmp 串中前若干字符比较strrep 串替换strtok 寻找第一间隔符前的内容struct 创建构架数组struct2cell 把构架转换为元胞数组strvcat 创建多行串数组sub2ind 多下标转换为单下标subexpr 通过子表达式重写符号对象subplot 创建子图subs 符号计算中的符号变量置换subspace 两子空间夹角sum 元素和summer 绿黄调夏色图superiorto 设定优先级surf 三维着色表面图surface 创建面对象surfc 带等位线的表面图surfl 带光照的三维表面图surfnorm 空间表面的法线svd 奇异值分解svds 求指定的若干奇异值switch-case-otherwise 多分支结构sym2poly 符号多项式转变为双精度多项式系数向量symmmd 对称最小度排序symrcm 反向Cuthill-McKee排序syms 创建多个符号对象T ttan 正切tanh 双曲正切taylortool 进行Taylor逼近分析的交互界面text 文字注释tf 创建传递函数对象tic 启动计时器title 图名toc 关闭计时器trapz 梯形法数值积分treelayout 展开树、林treeplot 画树图tril 下三角阵trim 求系统平衡点trimesh 不规则格点网线图trisurf 不规则格点表面图 triu 上三角阵 try-catch 控制流中的Try-catch 结构 type 显示M文件U uuicontextmenu 创建现场菜单uicontrol 创建用户控件uimenu 创建用户菜单unmkpp 逐段多项式数据的反明晰化unwrap 自然态相角upper 转换为大写字母V vvar 方差varargin 变长度输入宗量varargout 变长度输出宗量vectorize 使串表达式或内联函数适于数组运算ver 版本信息的获取view 三维图形的视角控制voronoi Voronoi多边形vpa 任意精度(符号类)数值W wwarning 显示警告信息what 列出当前目录上的文件whatsnew 显示Matlab中 Readme文件的内容which 确定函数、文件的位置while 控制流中的While环结构white 全白色图矩阵whitebg 指定轴的背景色who 列出内存中的变量名whos 列出内存中变量的详细信息winter 蓝绿调冬色图workspace 启动内存浏览器X x , Y y , Z zxlabel X轴名xor 或非逻辑yesinput 智能输入指令ylabel Y轴名zeros 全零数组zlabel Z轴名zoom 图形的变焦放大和缩小ztrans 符号计算Z变换。

Matlab中的极坐标绘图与极坐标变换

Matlab中的极坐标绘图与极坐标变换

Matlab中的极坐标绘图与极坐标变换引言:Matlab是一种常用的科学计算软件,它在数据处理和可视化方面具有强大的功能。

其中,极坐标绘图和极坐标变换是Matlab中一个重要的特性,可以用来呈现和分析各种数据。

本文将探讨Matlab中的极坐标绘图和极坐标变换的原理和应用。

一、极坐标绘图的基本原理极坐标系是一种二维坐标系,它的坐标由极径和极角构成。

在Matlab中,利用polar函数可以实现极坐标绘图。

这个函数需要两个向量作为参数,一个表示极角的向量theta,另一个表示极径的向量rho。

例如,我们可以通过以下代码在Matlab中画出一个极坐标图形:```matlabtheta = linspace(0, 2*pi, 100);rho = sin(3*theta);polar(theta, rho)```在这个例子中,我们使用linspace函数生成介于0到2π之间的100个等间距的角度值,然后计算对应的极径值。

最后,调用polar函数将这些值绘制成极坐标图形。

二、极坐标绘图的应用极坐标绘图在很多领域都有广泛应用。

例如,在信号处理中,我们可以用极坐标绘图来表示频谱图。

通过将极坐标图形转换为直角坐标系图形,我们可以直观地观察到信号的频谱特征。

此外,极坐标绘图还可以用于绘制复杂的几何图形。

通过合理选择极径和极角的变化规律,我们可以绘制出美观而富有创意的图形,例如花朵、螺旋线等。

这些图形不仅具有艺术价值,还能用于教学和科研领域。

三、极坐标变换的基本原理极坐标变换是一种将直角坐标系转换为极坐标系的方法。

Matlab中提供了cart2pol和pol2cart两个函数,可以实现这种转换。

cart2pol函数将直角坐标系下的坐标转换为极坐标系下的坐标。

它需要输入两个参数,分别是直角坐标系的x坐标和y坐标,输出为极坐标系的极角和极径。

以下是一个使用cart2pol函数的例子:```matlab[x, y] = meshgrid(-2:0.2:2);[theta, rho] = cart2pol(x, y);```在这个例子中,我们使用了meshgrid函数生成一个二维网格,其中x和y分别表示x坐标和y坐标的取值范围。

二维插值、牛顿插值的matlab程序代码

二维插值、牛顿插值的matlab程序代码

二维插值的matlab程序代码>> x=[129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5];>> y=[7.5 141.5 23.0 147.0 22.5 137.5 85.5 60.5 121.0 3.0 56.5 116.5 84.0 43.5];>> plot(x,y,'o')>> Z=[4 8 6 8 6 8 8 9 9 8 8 9 4 9];>> h=-Z;>> xi=70:3:200;yi=0:3:150;>> [X,Y]=meshgrid(xi,yi);>> H=griddata(x,y,h,X,Y,'cubic');>> mesh(X,Y,H);>> view(-60,30);图形如下:matlab中采用二维插值进行三维绘图之后,如何把图中的各个数据点导出?[X,Y] = meshgrid(-3:.25:3);Z = peaks(X,Y);[XI,YI] = meshgrid(-3:.125:3);ZI = interp2(X,Y,Z,XI,YI);mesh(X,Y,Z)mesh(XI,YI,ZI)%这句话就导出了插入的点牛顿插值(本程序算出牛顿插值多项式的系数)function [c,d]=newpoly(x,y)n=length(x);d(:,1)=y';for j=2:nfor k=j:nd(k, j)=(d(k, j-1)-d(k-1, j-1))/(x(k)-x(k-j+1)); endendc=d(n,n);for k=(n-1):-1:1c=conv(c,poly(x(k)));m=length(c);c(m)=c(m)+d(k,k);end牛顿插值matlab程序代码clc;format long; %显示15位%输入初始数据x0=[0.4 0.5 0.7 0.8];y0=[-0.916291 -0.693147 -0.356675 -0.223144];x=0.6; %插值点n=max(size(x0));y=y0(1); %迭代初始值disp(y);s=1;dx=y0; %每次循环用dx记录差商表的一列for i=1:n-1 %构造差商表 %%这里n为节点个数 dx0=dx;for j=1:n-idx(j)=(dx0(j+1)-dx0(j))/(x0(i+j)-x0(j));enddf=dx(1);s=s*(x-x0(i));y=y+s*df; %计算disp(y);end。

matlab二维图形的绘制

matlab二维图形的绘制

matlab二维图形的绘制(2006-11-20 20:38:35)转载▼分类:matlab基础(电子方向)常用的二维图形命令:plot:绘制二维图形loglog:用全对数坐标绘图semilogx:用半对数坐标(X)绘图semilogy:用半对数坐标(Y)绘图fill:绘制二维多边填充图形polar:绘极坐标图bar:画条形图stem:画离散序列数据图stairs:画阶梯图errorbar:画误差条形图hist:画直方图fplot:画函数图title:为图形加标题xlabel:在X轴下做文本标记ylabel:在Y轴下做文本标记zlabel:在Z轴下做文本标记text:文本注释grid:对二维三维图形加格栅绘制单根二维曲线plot函数,基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。

例如:在区间内,绘制曲线y=2e-0.5xcos(4πx)程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y)plot函数最简单的调用格式是只包含一个输入参数:plot(x)在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。

p=[22,60,88,95,56,23,9,10,14,81,56,23];plot(p)绘制多根二维曲线1.plot函数的输入参数是矩阵形式(1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。

曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。

(2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。

(3) 对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。

当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。

(完整word版)MatLab代码大全

(完整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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
'Callback','proportion_callback');
uicontrol('Style','pushbutton','string','旋转变换','Position',[150+leftbase 220+bottombase 10050],...
'Callback','rotation_callback');
return;
end
%读取图形顶点坐标
Point=Figure(:,[2,3]);
%进行平移变换
Point=TranslationTransformation(Point,data);
%构造平移变换后的图形数据矩阵
Figure(:,[2,3])=Point;
%获取图形内部点坐标矩阵
%fill=[];
%显示原始图形回调函数
Figure=getappdata(0,'FigureData');
ifisempty(Figure)
errordlg('未导入图形顶点数据','errordialogue');
return;
end
%获取图形内部点坐标矩阵
%fill=[];
ET=Create_ET(Figure);
'Position',[150+leftbase80+bottombase10050],'callback',@mirror_callback);
%set(duichen,'Callback',{@mirror_callback,duichen});
end
%show_callback.m文件
functionshow_callback(hObj,event)
uicontrol('Style','pushbutton','string','错切变换','Position',[150+leftbase 150+bottombase100 50],...
'Callback','shear_callback');
uicontrol('Style','popup','string','关于x轴对称|关于y轴对称|关于原点对称|关于y=x对称|关于y=-x对称',...
end
%proportion_callback.m文件
functionproportion_callback(hObj,event)
Resize='on';%设置对话框大小为可调节的
answer=inputdlg(prompt,title,numline,defdata,Resize);
%将输入的cell类型数据转换为整数
data=str2num(char(answer));
%检测用户是否点击了取消按钮
iflength(data)<2
ifisempty(Figure)
errordlg('未导入图形顶点数据','errordialogue');
return;
end
prompt={'输入x方向的增量','输入y方向的增量'};%设置提示字符串
title='输入平移增量';%设置标fdata={'0','0'};%指定数据的默认值
leftbase=10;
bottombase=-50;
scrsz = get(0,'ScreenSize');
figure('Position',[scrsz(3)/3 scrsz(4)/6scrsz(3)/3 scrsz(4)*2/3]);
%figure();
uicontrol('Style','pushbutton','string','查看原图','position',[150+leftbase 500+bottombase 100 50],...
fill=Fill(ET);
DrawFigure(Figure,fill,'原图');
end
%input_callback.m文件
functioninput_callback()
%输入图形数据矩阵回调函数
Figure=GetFigure();
if~isempty(Figure)
setappdata(0,'FigureData',Figure);
二、二维几何变换
%c6_Test.m文件,这是主文件
clearall;
clc;
%Main();
Menu();
%Menu.m文件,主界面函数
%function Menu()
%程序主界面函数
%初始化图形数据矩阵为空
Figure=[];
setappdata(0,'FigureData',Figure);
%主界面布局
msgbox('图形数据输入成功!','提示对话框');
else
errordlg('导入的数据为空','警告信息!');
end
end
%translation_callback.m文件
functiontranslation_callback(hObj,event)
%平移变换回调事件
Figure=getappdata(0,'FigureData');
uicontrol('Style','pushbutton','string','平移变换','Position',[150+leftbase 360+bottombase10050],...
'Callback','translation_callback');
uicontrol('Style','pushbutton','string','比例变换','Position',[150+leftbase290+bottombase10050],...
ET=Create_ET(Figure);
fill=Fill(ET);
%标题
Thead=strcat('平移变换---X坐标增量:',num2str(data(1)),';Y坐标增量:',num2str(data(2)));
%输出平移变换后的图形
DrawFigure(Figure,fill,Thead);
'callback','show_callback');
uicontrol('Style','pushbutton','string','导入图形','Position',[150+leftbase430+bottombase100 50],...
'Callback','input_callback');
相关文档
最新文档