matlab的meshgrid函数详解

matlab的meshgrid函数详解函数形式[C,R]=meshgrid(c,r)初步解释首先需要明确的是参数c,r都是行向量,该函数将行向量c,r指定的域变换为数组C,R,这2个数组能用来指示有2个变量的函数和三维的图。输出数组C的每一行都是行向量c,输出数组R的每一列都是行向量r。例如我们需要形成一个二维函数,其元素是由坐标变量x和y的值的平方和。也就是f(x,y)=x^2+y^2这样的形式…

大家好,又见面了,我是你们的朋友全栈君。

函数形式

[C,R] =meshgrid(c, r)

初步解释

首先需要明确的是参数 c, r 都是行向量,该函数将行向量c, r指定的域变换为数组C,R,这2个数组能用来指示有2个变量的函数和三维的图。
输出数组C的每一行都是行向量c,输出数组R的每一列都是行向量r。例如我们需要形成一个二维函数,其元素是由坐标变量x和y的值的平方和。也就是f(x,y) = x^2 +y^2这样的形式。其中变量x =0,1,2和y= 0,1。繁琐地来列出所有的坐标对:
(x,y) = (0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
在matlab中我们所需要的就是这样的数据,然后将坐标对代入函数就可以得到结果了。

[C,R] = meshgrid([0,1],[0,1,2])
%%%%%%%%%结果%%%%%%%%%
C =

     0     1
     0     1
     0     1


R =

     0     0
     1     1
     2     2
%%%%%%%%%%%%


% f(1,1)  =  R(1,1).^2 +C(1,1).^2
f = R.^2 + C.^2

仔细观察上面的结果你会发现,R这个二维数组指明了x这个行标(分量),C这个二维数组指明了y这个列标(分量)。

加深理解

再举一个例子,主要是为了加深理解meshgrid函数,如实现 f(x,y) = A*sin(u0*x+v0*y),其中x =0,1,2,…,M-1;y=0,1,2,….,N-1.
另外需要说明的是,M,N,A,u0,v0这些常数都是自己给定的。
首先给一个一般实现,但是速率很慢。

for r =1:M
    u0x = u0*(r-1)
    for c=1:N
        v0y =v0*(c-1)
        f(r,c) = A*sin(u0x+v0y)
    end
end

用meshgrid函数实现,根据上面给出的条件,说明x =[0,1,..,M-1]而y=[0,1,…,N-1],这样一来我们也就确定了c,r这2个行向量。然后生成各自对应的行标、列标的二维数组C,R。

r = 1:M-1;
c = 1: N-1;
[C,R] =meshgrid(c,r);

g = A*sin(u0*R +v0*C);

g = mat2gray(g);
imshow(g)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134136.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP面向对象

    PHP面向对象

    2022年1月12日
    45
  • jQuery实现方式不一样的跳转到底部

    jQuery跳转到页面底部效果在线体验:http://hovertree.com/texiao/jquery/9.htm以下是完整HTML代码:跳到底部jquery效果-何问起跳到底部效果

    2021年12月21日
    48
  • jquery中失去焦点事件_easyui失去焦点事件没触发

    jquery中失去焦点事件_easyui失去焦点事件没触发触发焦点:$("Element").focus()触发每一个匹配元素获得焦点事件。$("Element").focus(function)事件会在获得焦

    2022年8月4日
    4
  • Java分页原理_分页系统原理

    Java分页原理_分页系统原理Java分页常见的分页实现方式使用List接口中的subList(intstartIndex,intendIndex)方法实现分页直接使用数据库SQL语句实现分页使用hibernate等框架实现跨数据库的分页使用subList()实现分页使用数据库SQL语句实现分页mysql数据库使用limit关键字,oracle中使用rownum关键字。例如,从学生表(

    2022年10月3日
    0
  • 线程的用户态和内核态_缺页发生在用户态还是内核态

    线程的用户态和内核态_缺页发生在用户态还是内核态(1)用户态和内核态的概念?—>内核态:CPU可以访问内存所有数据,包括外围设备,例如硬盘,网卡.CPU也可以将自己从一个程序切换到另一个程序—>用户态:只能受限的访问内存,且不允许访问外围设备.占用CPU的能力被剥夺,CPU资源可以被其他程序获取(2)为什么需要用户态和内核态?—>由于需要限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,…

    2022年9月18日
    0
  • rpm包怎么打开(ubuntu rpm格式)

    WPSOffice2019ForLinux发布11.1.0.9505版本了,在2020年4月9日提供了wps-office_11.1.0.9505_amd64.deb/rpm下载,支持X64、MIPS、ARM计算机架构。使用旧版本的用户可升级到新版本。WPSOffice2019ForLinux11.1.0.9505版更新内容1、WPS公共:支持金山会议,云上开会,协作无间。支持自…

    2022年4月11日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号