精华内容
下载资源
问答
  • 本文是科学计算与MATLAB语言的专题四的第5小节总结笔记,并结合了自己一点的理解,看完本文,可以轻松利用MATLAB相关函数,画出漂亮的三维曲面。 1 平面网格数据的生成 在画三维曲面之前,需要将三维曲面对应的平面...

    0 前言

    本文是科学计算与MATLAB语言的专题四的第5小节总结笔记,并结合了自己一点的理解,看完本文,可以轻松利用MATLAB相关函数,画出漂亮的三维曲面。

    1 平面网格数据的生成

    在画三维曲面之前,需要将三维曲面对应的平面坐标存储起来,怎么存储呢?很简单有两种方法。
    用矩阵X、Y分别存储每一个小矩形顶点的x坐标与y坐标,矩阵X、Y就是该矩形区域的xy平面网格坐标矩阵。
    例如,在X-Y坐标平面生成一个由(2,6),(3,8)围成的网格坐标。
    在MATLAB中,产生平面区域内的网格坐标矩阵有两种方法。
    利用矩阵运算生成

    x=2:6; 
    y=(3:8)'; 
    X=ones(size(y))*x;
    Y=y*ones(size(x));
    

    X和Y相同位置上的元素,如X32X_{32}Y32Y_{32}是区域的第3行第2列网格点的坐标(3,5)。
    利用meshgrid函数生成
    这种方法是我们需要的!简洁,明了!

    [X,Y]=meshgrid(x,y);
    其中
    参数x、y为向量,存储网格点坐标的X、Y为矩阵。

    x=2:1:6;
    y=(3:1:8)';
    [X,Y]=meshgrid(x,y);
    

    第3行命令生成的网格坐标矩阵X、Y与第一种得到的相同。
    若根据每一个网格点上的x、y坐标求函数值z,则得到函数值矩阵Z。矩阵X、Y、Z中的各个列向量,对应于一条曲线数据点的坐标。
    例1 绘制空间曲线。
    plot3.7

    x = 2:6; 
    y = (3:8)';
    [X, Y] = meshgrid(x, y);
    Z = randn(size(X));
    plot3(X,Y,Z)
    grid on;
    

    2 绘制三维曲面的函数

    2.1 mesh函数和surf函数的一般召唤方式

    mesh(x,y,z,c)
    surf(x,y,z,c)
    其中
    x、y是网格坐标矩阵
    z是网格点上的高度矩阵
    c用于指定在不同高度下的曲面颜色
    c省略时,颜色的设定正比于图形的高度。
    例2 绘制三维曲面图z=xex2y2z=xe^{-x^2-y^2}
    plot3.8

    t = -2:0.2:2; 
    [X, Y] = meshgrid(t);
    Z = X .* exp(-X.^2 - Y.^2);
    subplot(1,3,1)
    mesh(X,Y,Z); 
    subplot(1,3,2)
    surf(X,Y,Z); 
    subplot(1,3,3)
    plot3(X,Y,Z); 
    grid on
    

    2.2 其他召唤方式

    mesh(z,c)
    surf(z,c)
    当x、y省略时,z矩阵的第2维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。
    例如,绘制一个曲面。
    plot3.9

    t=1:5; 
    z=[0.5*t;2*t;3*t];
    mesh(z);
    

    注意:z是一个为3行5列的矩阵,因此X轴坐标为1、2 、3 、4、5,Y轴坐标为1、2、3.

    2.3 mesh、surf函数的亲戚朋友

    函数名称 函数说明
    meshc 等高线三维网格曲面
    meshz 底座三维网格曲面
    surfc 等高线曲面
    surfl 光照效果曲面

    例3 用4种方式绘制函数z=(x1)2+(y2)21z=(x−1)^2+(y−2)^2−1的曲面图。其中,x[0,2]y[1,3]x∈[0,2],y∈[1,3]。
    plot3.10

    [x,y]=meshgrid(0:0.1:2,1:0.1:3);
    z=(x-1).^2+(y-2).^2-1;
    subplot(2,2,1);
    meshc(x,y,z);title('meshc(x,y,z)')
    subplot(2,2,2);
    meshz(x,y,z);title('meshz(x,y,z)')
    subplot(2,2,3);
    surfc(x,y,z);title('surfc(x,y,z)')
    subplot(2,2,4);
    surfl(x,y,z); title('surfl(x,y,z)')
    

    3.标准三维曲面

    3.1 sphere函数-画个球

    [x,y,z]=sphere(n)
    产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。

    3.2 cylinder函数

    [x,y,z]=cylinder(R,n)
    其中,参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。
    例4 用cylinder函数分别绘制柱面、花瓶和圆锥面。
    plot3.11

    subplot(1,3,1);
    [x,y,z]=cylinder;
    surf(x,y,z);
    subplot(1,3,2);
    t=linspace(0,2*pi,40);
    [x,y,z]= cylinder(2+cos(t),30);
    surf(x,y,z);
    subplot(1,3,3);
    [x,y,z]= cylinder(0:0.2:2,30);
    surf(x,y,z);
    

    例5 用cylinder函数绘制两个相互垂直且直径相等的圆柱面的相交图形。
    plot3.11-12

    [x,y,z]= cylinder(1,60);
    z=[-1*z(2,:);z(2,:)];
    surf(x,y,z)
    hold on
    surf(y,z,x)
    axis equal
    

    3.3 peaks 函数-峰值曲面图

    peaks函数的召唤方式:
    peaks(n)返回一个 n×n 矩阵
    peaks(V)返回一个 n×n 矩阵,其中 n = length(V)
    peaks(x,y)在给定的 X 和 Y(必须大小相同)处计算 peaks 并返回大小相同的矩阵
    peaks
    具体使用方式参考官方文档
    多峰函数:z=3(1x)2e(x2)(y+1)210(x5x3y5)e(x2y2)13e(x+1)2y2z = 3(1-x)^2e^{-(x^2) - (y+1)^2 }-10(\frac{x}{5} - x^3 - y^5)e^{(-x^2-y^2})-\frac{1}{3}e^{-(x+1)^2 - y^2}
    plot3.12

    [x,y]=peaks(10);
    z =  3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... 
       - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... 
       - 1/3*exp(-(x+1).^2 - y.^2) ;
    surf(z)
    

    也可以通过以下命令绘制出此图。

    figure
    peaks(10)
    

    plot3.13
    是不是一样?好像不是,坐标轴间隔、标注不一样呀,哈哈哈。目前我也不知道这个函数有啥用,不过好像很厉害的亚子!

    3.4 fmesh函数和fsurf函数-三个方程 两个自变量

    如果一个图形由三个参数方程决定,有两个自变量,那么可以使用fmesh函数和fsurf函数。
    fmesh(funx,funy,funz,uvlims)
    fsurf(funx,funy,funz,uvlims)
    其中,funx、funy、funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。
    uwlims为funx、funy和funz的自变量的取值范围,用4元向量(umin,umax,vmin,vmaxd描述,默认为[-5,5,-5,5]。
    例6 绘制螺旋曲面{x=usinvy=ucosv,(5u5,5v2)z=v\left\{ \begin{aligned} x&=usinv\\ y&=-ucosv,(-5 \leq u\leq5,-5\leq v\leq2)\\ z&=v \end{aligned}\right.

    funx = @(u,v) u.*sin(v);
    funy = @(u,v) -u.*cos(v);
    funz = @(u,v) v;
    fsurf(funx,funy,funz,[-5 5 -5 -2])%画出下半部分
    hold on
    fmesh(funx,funy,funz,[-5 5 -2 2])%画出上半部分
    hold off
    

    4 结语

    您是否学会了呢?如果本文对您有帮助,可以点个赞哈,如有错误疑问,请您指出哈。

    展开全文
  • 【MATLAB】MATLAB三维曲面绘制【详细教程】

    千次阅读 多人点赞 2020-08-06 18:37:39
    此次以下函数为例,介绍Matlab三维曲面的绘制方式 z=1−x2+(y−1)2 z = 1-\sqrt{x^{2}+(y-1)^{2}} z=1−x2+(y−1)2​ 成品效果图如下: 绘图讲解: 1. 绘制三维图像 [X,Y] = meshgrid(x,y);:将x和y网格化,得到...

    近日需要用Matlab绘制一些三维曲面图,并对其进行标注。于是这些天花了些功夫重新梳理了一遍关于Matlab三维曲面作图的一些注意事项,在此记录备案,便于以后使用查找。

    任务要求:已知函数形式,绘制三维曲面

    此次以下函数为例,介绍Matlab三维曲面的绘制方式
    z=1x2+(y1)2 z = 1-\sqrt{x^{2}+(y-1)^{2}}

    • 成品效果图如下:

    Example

    绘图讲解:

    1. 绘制三维图像

    • [X,Y] = meshgrid(x,y);:将xy网格化,得到网格化的后的变量XY

    所谓的网格化即将原本的一维的坐标轴xy组合,成为一个二维的平面XY。可能有些人会觉得不太好理解,我也不太能用语言描述清楚。不过在工作区点开XY查看其内部的具体值之后即可理解。

    • Fig = mesh(X,Y,Z);:以XYZ为数据绘制三维曲面,并将此曲面赋值给Fig

    在最开始的时候我都是用mesh(X,Y,Z)而不用其返回值,后来发现使用返回值调整参数更加容易(这个具体后续细说)

    在掌握这两段代码后,能够绘制一个最基本的三维曲面,代码如下:

    clear;clc; %清除前置数据
    
    %数据预处理
    x = linspace(0,1,50); %设置x轴的范围
    y = x; %设置y轴范围
    [X,Y] = meshgrid(x,y); %将其x,y轴网格化
    Z = 1-sqrt((X).^2+(Y-1).^2); %直接计算
    
    %绘制曲面
    Fig = mesh(X,Y,Z); %绘制三维曲面图
    

    由此我们能得到一个非常简陋的三维曲面,而这样的曲面距离我们的要求还有一段距离。

    Example 1

    2. 坐标轴的设置

    上图最明显的感觉就是太空了,因此我们需要为其加上坐标轴:

    • xlabel('x');:设置x轴的变量为x
    • ylabel('$y$','interpreter','latex');:将y轴的变量设置为LaTeX格式的y(这里的代码和LaTeX公式代码完全一致)
    • zlabel('$z$','interpreter','latex','FontSize',18);:除上述功能外,设置z轴变量的字体大小为18pt
    • title('$z = 1-\sqrt{x^{2}+(y-1)^{2}}$','interpreter','latex','FontWeight','bold');:命名标题且加粗

    坐标轴的设置还有很多功能,比如说替换字体这种,可以通过帮助文档(在命令行输入help text查看)

    注:这里help的是text,这样才有足够详细的可选项说明

    我们通过以下代码设置坐标轴的格式:(这里的L(i)同上述Fig可以去掉)

    L(1) = xlabel('x');
    L(2) = ylabel('$y$','interpreter','latex');
    L(3) = zlabel('$z$','interpreter','latex','FontSize',18);
    L(4) = title('$z = 1-\sqrt{x^{2}+(y-1)^{2}}$','interpreter','latex','FontWeight','bold');
    

    现在图片变成了这样:
    Example 2

    这里可以体会以下LaTeX公式字体和普通字体的区别,加上坐标轴后看起来稍微好些,但是还有待改进。接下来我们设置图片的颜色和色条。

    3. 曲面颜色和色条

    • colormap winter;:设置曲面颜色为winter格式

    wintermatlab自带的一种曲面颜色格式,还有其他可选格式可以通过help colormap查看

    • colorbar;:在曲面旁边增设colorbar

    colorbar的位置可以通过colorbar('Position',Location);进行调整,其中Location为其相对于图片比例的坐标(非图上坐标)

    增加代码为:

    %此处将上述的坐标轴文字格式给统一了
    colormap winter; %设置colormap的格式
    colorbar; %加上色条
    

    此时图片情况变成了:

    Example 3

    看上去图片基本成型,但是还不好看,我们可以通过旋转,设置坐标轴的范围等效果,对图片进行优化。

    4. 图片的旋转和缩放

    • view(az,el);:设置观看的视角为(az,el)
    • axis([xmin xmax ymin ymax zmin zmax]);:设置坐标轴的范围
    • set(gcf,'Units','centimeters','Position',[Start_x Start_y Length Width]);:设置图片的位置

    其中Start_xStart_y分别代表图像在屏幕的起始位置(可任意设置)

    LengthWidth分别代表图像的长度和宽度的具体值(根据自己的需要设置)

    于是在后续增加如下代码:

    view([50,20]); %设置观察角度
    axis([min(x) max(x) min(y) max(y)... %设置坐标范围
            min(min(Z)) max(max(Z))]); %这里由于Z是二维需要用两层最值函数
    set(gcf,'Units','centimeters','Position',[6 6 20 15]); %设置图片大小
    

    最新的图片如下,就有点那种味道了

    Example 4

    注:如何确定旋转时azel的值?

    1. 在完成绘图后点击如下所示的旋转图标,可实现图像的旋转

    旋转图标

    1. 将图片旋转到心仪位置时,记录下其azel
      Az 和 El

    5. 图片的保存

    图片绘制完成之后,可以保存为各种格式,原本我都是通过手动点击的方式对图片进行保存。不过后来体会到一次编写代码保存的快乐过后,就再也懒得动手保存。在此分享Matlab中保存图像的代码:

    • saveas(Fig,'Example.png');:将图片Fig(就是在mesh时返回的值),保存为Example.png文件

    同时还可以保存为epspdfMatlab能保存的文件格式

    注:如果出现保存为eps格式图片失去颜色的状况,可使用代码saveas(Fig,'Example.eps','psc2');

    完整代码:完成此图的完整代码

    % 调用函数文件
    % % function [ Z ] = Func_Sur( X, Y )
    % % %需要绘制的曲面函数
    % % Z = 1-sqrt((X).^2+(Y-1).^2);
    % % end
    
    clear;clc; %清除前置数据
    
    %数据预处理
    x = linspace(0,1,50); %设置x轴的范围
    y = x; %设置y轴范围
    [X,Y] = meshgrid(x,y); %将其x,y轴网格化
    Z = 1-sqrt((X).^2+(Y-1).^2); %直接计算
    %Z = Func_Sur(X,Y); %计算对应的Z坐标 建议函数形式调用
    
    %相关参数
    FontS = 16; %大小为12pt
    FontW = 'bold';  %粗细为加粗 [不加粗用normal或缺省]
    az = 50; el = 20; %旋转的角度设置
    Length = 20; Width = 15; %设置图片长宽
    Start_x = 6; Start_y = 6; %设置图片起始位置
    
    %图像绘制
    figure(1) %定义所绘图像为Figure的第一个
    Fig = mesh(X,Y,Z); %绘制三维曲面图
    colormap winter; %设置colormap的格式
    colorbar; %加上色条
    
    %图像调整
    view([az,el]); %设置观察角度
    axis([min(x) max(x) min(y) max(y)... %设置坐标范围
            min(min(Z)) max(max(Z))]) %这里由于Z是二维需要用两层最值函数
    set(gcf,'Units','centimeters','Position',[Start_x Start_y Length Width]); %设置图片大小
    
    %坐标调整(设置为LaTeX文字格式)
    L(1) = xlabel('$x$','interpreter','latex','FontSize',FontS,'FontWeight',FontW);
    L(2) = ylabel('$y$','interpreter','latex','FontSize',FontS,'FontWeight',FontW);
    L(3) = zlabel('$z$','interpreter','latex','FontSize',FontS,'FontWeight',FontW);
    L(4) = title('$z = 1-\sqrt{x^{2}+(y-1)^{2}}$','interpreter','latex','FontSize',FontS,'FontWeight',FontW);
    
    %图像保存
    saveas(Fig,'Example.png'); %保存为.png格式
    %eps格式保存:需增加'psc2'不然图像为黑白
    %saveas(Fig,'Example.eps','psc2');
    
    展开全文
  • MATLAB三维曲面

    2019-09-24 01:43:10
    函数 f(x)=2(x1-1)4+2x22 的三维图. 这道题要用到的知识点有函数meshgrid、mesh、surf。 'meshgrid'的用途是将向量转换为矩阵。 调用格式为:[X,Y]=meshgrid(x,y); 其中x=1:4;y=1:4;的向量转换为矩阵的每一行...

    今天终于测试了,发下来第一张试卷中只会做一小题。我蒙了!!!

    所以呢,我现在再做一下,总结总结!

    1. 作函数 f(x)=2(x1-1)4+2x22 的三维图.

    这道题要用到的知识点有函数meshgrid、mesh、surf。

    'meshgrid'的用途是将向量转换为矩阵。

    调用格式为:[X,Y]=meshgrid(x,y);

    其中x=1:4;y=1:4;的向量转换为矩阵的每一行都是向量x、y。X、Y生成的是4*4的矩阵。

    'mesh'、'surf'都是用来绘制三维曲面图

    唯一的区别是:前者是画三维网格,后都是曲面。他们的相同点是,调用的格式 mesh(x,y,z,c)

    surf(x,y,z,c)

    x,y,z都是三维坐标,但是c是指定在不同高度的颜色范围。默认的c=z

    所以,结果就出来。

    x=1:0.1:3;

    y=22:0.1:25;

    [X,Y]=meshgrid(x,y);

    Z=2.*(X-1).^4+2.*(Y.^2);

    surf(X,Y,Z);

     

     

    转载于:https://www.cnblogs.com/orangebook/p/3273414.html

    展开全文
  • 这里主要讲三维曲面着色。 方法 实现绘制曲面的函数有不少,典型如下 函数 含义 mesh、surf 曲面图 meshc、surfc 下方带有等高线图的曲面图 meshz 带帷幕图(参考平面)的曲面图 pcolor

    来源

    写论文,从二维变三维空间,对三维工作空间分析,希望创建漂亮的工作空间示意图。二维区域着色已经在之前博文提到过了:Matlab不规则区域渐变色填充及注意事项。这里主要讲三维曲面着色。

    方法

    实现绘制曲面的函数有不少,典型如下

    函数 含义
    mesh、surf 曲面图
    meshc、surfc 下方带有等高线图的曲面图
    meshz 带帷幕图(参考平面)的曲面图
    pcolor 单一着色平面图(值仅与颜色成比例)
    surfl 从指定方向照亮的曲面图
    surface 用于创建曲面图形对象的低级函数(高级函数的基础)

    函数plot3在此不考虑,因为它不是绘制曲面的函数。

    具体可以参考官方帮助文档:将数据表示为曲面

    我选择使用surf函数来绘图。

    surf函数

    surf(X,Y,Z) 创建一个三维曲面图。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。函数还对颜色数据使用 Z,因此颜色与高度成比例。

    关键:这个函数的参数都是矩阵,如何将二维空间通过旋转得到三维空间,并是数据结构适合surf函数是我遇到的难点。换一句话就是,如何把plot3函数参数的数据应用到surf函数中。

    实例

    二维数据

    在这里插入图片描述
    上面图形是二维工作空间,现在将该图形中右侧下方橙黄色线沿着‘x=0’(z轴)旋转360°得到封闭的三维曲面。三维封闭空间可以使用相同的方式把其他边界线旋转得到。

    解决方案

    从二维图形中获取右侧下方一半橙黄色实现数据,即下方代码前两行数据,我将其转置是为了后面产生矩阵。绕z轴旋转,二维的X坐标就转换成三维的X与Y坐标,二者关系式一个圆的方程,这里使用参数方程进行转换。使用surf绘制可得

    X_t=Pos_2D{1,2}';	% 二维X坐标
    Z_t=Pos_2D{1,3}';    % 二维Z坐标
    theta = linspace(0, 2*pi, length(X_t));			% 产生相同长度的向量
    X = X_t*cos(theta);										% 产生三维X坐标矩阵
    Y = X_t*sin(theta);										% 产生三维Y坐标矩阵
    Z=Z_t*ones(1,length(Z_t));							% 产生三维Z坐标矩阵
    
    surf(X,Y,Z,'EdgeColor', 'none')
    

    在这里插入图片描述

    其他方案

    在生成二维坐标值的时候 内嵌一个循环直接生成三维坐标。不相关变量没有提供注释。这样也可以得到上面的三维着色曲面。

    tt=1;
    for i=1:length(epsilonWorkspace)
        phi_0 = EPSILON *2*bending_L(k)/d;
        phi(i)   = epsilonWorkspace(i)*2*bending_L(k)/d;
        curve_angle(i) = phi_0-phi(i);
        R(i) = bending_L(k)/curve_angle(i);
    
        X(i)=-1*R(i)+R(i)*cos(curve_angle(i)) ;			% 生成二维X坐标
        Z(i)=R(i)*sin(curve_angle(i));							% 生成二维Z坐标
        for p = 0 : pi/20 : 2*pi
            X_3D(tt) = X(i) * cos(tt);								% 生成三维X坐标
            Y_3D(tt) = X(i) * sin(tt);								% 生成三维Y坐标
            Z_3D(tt) = Z(i);											% 生成三维Z坐标
            tt = tt +1;
        end
    end
    %把上面的坐标向量转换成surf可以使用的矩阵
    n = floor(nthroot(length(Z_3D),2));
    X_3D((floor(nthroot(length(X_3D),2))^2+1):length(X_3D))=[];
    Y_3D((floor(nthroot(length(Y_3D),2))^2+1):length(Y_3D))=[];
    Z_3D((floor(nthroot(length(Z_3D),2))^2+1):length(Z_3D))=[];
    XXX = reshape(X_3D,n,n)';
    YYY = reshape(Y_3D,n,n)';
    ZZZ = reshape(Z_3D,n,n)';
    surf(XXX, YYY,ZZZ)
    

    常见错误

    surf报错

    surf函数的输入参数都是矩阵

    生成的图形是黑色

    在这里插入图片描述
    如果生成的曲面是上图黑色,这是因为之前的循环中间隔太小,然而默认surf会绘制曲线颜色导致,使用下面代码取消曲线颜色显示,结果如下:
    在这里插入图片描述

    生成曲面光滑

    在这里插入图片描述
    上图我人为是生成数据点时,点之间过渡不光滑导致,因为在其他方案中是 把二维XZ平面中的一个点处理成三维空间一个平面圆,然后处理下一个点。

    参考资料

    1. Matlab不规则区域渐变色填充及注意事项
    2. 将数据表示为曲面
    3. 将数据表示为曲面
    4. 如何用Matlab快速画出带有3D渲染效果的复杂曲面
    展开全文
  • 原文地址为:Matlab绘制三维曲面(以二维高斯函数为例)  寒假学习了一下Python下的NumPy和pymatlab,感觉不是很容易上手。来学校之后,决定继续看完数字图像处理一书。还是想按照上学期的模式,边看边实现书中的...
  • Matlab用surf函数三维曲面(详细)

    万次阅读 多人点赞 2019-07-08 15:24:41
    首先三维数据如下,第一行第一列代表横纵坐标,然后其它的值是z值 然后要将3个维度的值分别做成一个矩阵 X: Y: Z: 然后在Matlab的工作空间里生产变量: 这样就可以使用surf函数了 效果图: ...
  • matlab绘制三维曲面

    2021-01-07 02:51:28
    matlab绘制三维曲面 平面网格数据的生成 meshgrid函数 >>x=2:8; >>y=(3:7)'; >>[X,Y]=meshgrid(x,y); >>plot(X,Y,'o'); 绘制三维曲面函数 mesh函数绘制三维网格图 调用格式:mesh(x,y,z,c) 其中x,y为网格坐标...
  • 上学期看的时候,是用C语言实现的,发现写程序太耗时间了,所以决定还是学习下Matlab吧(寒假莫有学会Python中的那些库应用。。。)经过两天的学习,终于看完了一本关于Matlab的基础书。对于Matlab有了一个基本的了解...
  • matlab进行曲面插值后,得到插值曲面却无法进一步对数据进行校验,通常插值后需要进行交叉验证,评价算法优劣,苦苦搜寻没有找到资料,索性自己编写以griddata,抛砖引玉函数插值曲面后进行说明,抛砖引玉其他可以...
  • matlab三维曲面

    2020-05-09 10:17:34
    matlab三维曲面 三维曲面用到了surf()函数 语法: surf(X,Y,Z); 先来看一个例子: >> [X Y]=meshgrid(-2:0.5:2); >> Z=ones(size(X)); >> surf(X,Y,Z); 运行截图 可以看出XY的范围确定...
  • 最近遇到个问题,如何利用一大堆三维坐标点,拟合出三维曲面。不知道大家有没有遇见过,就是下面这种。我当然是上网百度啊之类的,想看看要怎么作,但转了一圈下来,发现网上几乎是关于下面情况的作图说明,即:我...
  • matlab是一款功能强大的通用工程数学软件。...然而十分可惜的是与之对应的ezsurf和ezmesh却对隐函数曲面F(x,y,z)=0的绘制无能为力。那么matlab究竟有没有用来绘制诸如F(x,y,z)=0的命令呢?答案毫无疑问是肯定的。事实上
  • 1.绘制三维图形的基本函数   最基本的三维绘图函数为plot3; plot3与plot用法十分相似,调用格式: plot(x1,y1,z1,选项1,x2,y2,z2,选项2,...,xn,yn,zn,选项n) 当x,y,z是同维向量时,则x,y,z,对应元素...
  • 更多内容尽在个人专栏:matlab学习上一节我们说了说三维曲线的绘制,这一节我们趁热打铁,说一说三维曲面meshgrid函数:建造三维曲面之前,我们先来了解一下meshgrid函数meshgrid函数用来生成二维方格矩阵,作为第三...
  • 在绘制曲面之前,需要先将数据点生成平面数据网格,其生成的数据是网格的坐标。 生成的方式有两种: (1)利用矩阵运算生成 代码示例: x = 2:6; y = (3:8)'; X = ones(size(y))*x; Y = y*ones(size(x)); 其中,X,...
  • 三维画图软件经常会出现下面错误 以mesh(x,y,z)为例: 主要原因是因为没有注意Z数据格式,Z必须是矩阵形式。而且Z矩阵的m*n必须与y,x相关, mesh(X,Y,Z)使用Z确定的颜色绘制线框网格,因此其颜色与曲面高度成...
  • Matlab绘制三维曲面

    千次阅读 2016-07-04 23:25:17
    平面网格点的生成 Matlab用meshgrid函数来生成x-y平面上的小矩形顶点坐标, 调用格式如下: [X, Y] = meshgrid(x,y) 网格曲面 利用meshgrid生成网格点之后,可以用mesh来绘制网格曲面
  • matlab 绘制三维空间隐函数自由曲面

    千次阅读 2019-07-16 11:04:37
    本博客介绍了一个常用于三维函数绘制的函数,利用自由曲面-球面为事例,介绍该函数的用法。 本功能实现主要的两个函数 isofurface patch 其实主要是第一个函数有用 2.isosurface介绍 matlab2014a 版给的函数...
  • 假设函数,要求在区间内内绘制三维网格图和三维曲面图 %mesh三维曲面绘图 x=-2:.2:2;%生成间隔为0.2在-2到2的向量数据,-2到2之间有4/2.0+1=21个值 y=-2:.2:2; [X,Y]=meshgrid(x,y);%生成网格数据,X,Y都是21*21...
  • matlab如何绘制三维曲面

    千次阅读 2017-03-22 15:24:55
    许多时候需要绘制三维曲面图,比如知道三维数据(x,y,z),如何绘制出三维图像? 以二元函数图 z = xexp(-x^2-y^2) 为例讲解基本操作,首先需要利用meshgrid函数生成X-Y平面的网格数据,如下所示: % 生成二...
  • 绘制三维曲面图步骤:1): 对数据进行处理,得到三维曲面上的点坐标组方法有: 1、将自变量离散, x=xmin:dx:xmax y=ymin:dy:ymax 2、利用meshgrid 指令 生成 x-y 矩阵2):利用函数z=f(x,y) 计算函数值3) 绘图...
  • 最近需要用到Matlab来绘制三维的地形图等,即通过已知的山地海拔数据,利用Matlab软件使用插值法绘制三维曲面图、等高线图、伪彩色图、散点图。 一、Matlab插值 插值就是在已知数据之间计算估计值的过程,是一种实用...
  • 在界面内绘制下面的二维函数所表示的曲面: 代码如下: >> clear >> x=-10:0.1:10;y=x; >> [X,Y]=meshgrid(x,y); >> N = size(X,2); >> M = size(Y,1); >> Z = zeros(N,M); &...
  • 三维曲线 plot3函数 plot3(x, y, z) 其中,参数x、y、z组成一组曲线的坐标。 若 x , y, z 是等长行向量,则根据向量的位置确定坐标, 如 (x1, y1, z1) x=[0.2, 1.8, 2.5]; y=[1.3, 2.8, 1.1]; z=[0.4, 1.2, 1.6]; ...
  • MATLAB三维绘图

    2020-07-19 15:14:50
    三维曲面三维曲面绘制过程(1)生成平面网格坐标矩阵(2)利用绘制三维曲面函数绘制曲面3.其他三维曲面 1.三维曲线 绘制三维曲线的基本函数 调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 223
精华内容 89
关键字:

matlab三维曲面函数

matlab 订阅