美文网首页
matlab画自由曲面

matlab画自由曲面

作者: Aerio_不要坐井观天 | 来源:发表于2017-12-19 17:00 被阅读0次

    版本:matlab R2016a

    需求:画一个三维图。xy平面上是y = x^2和y = (x-1)^2之间的区域,纵轴可以是x,y的函数,这里为了简化,简单把z设置为常数1。

    clear all

    clc

    x = -2:0.1:0; %给x range成一系列的点,类似标准曲面中用到的meshgrid

    y1 = @(x) (x-1).^2; %定义函数1

    y2 = @(x) x.^2; % 定义函数2

    [~,n] = size(x);

    Y = []; % mesh中的Y矩阵

    X = []; % mesh中的X矩阵

    for i = 1:n

        yy1 = y1(x(i)); % 对每一个x, 产生下边界

        yy2 = y2(x(i));% 对每一个x,产生上边界

        y = linspace(yy1,yy2,20); % 将两个函数之间产生点用以组成meshgrid中的点

       X = [X ones(20,1)*x(i)]; % 为每一个y配置一个x,这些y公用一个x

       Y = [Y;y];  % 同上

    end

    surf(X,Y',ones(20,21)); %ones()相当于Z

    总结:目前感觉自由曲面的画法宗旨上与标准曲面上一样,只不过需要自己构建meshgrid。或许还有其他一些更简单的画法,以后再学习吧。

    相关文章

      网友评论

          本文标题:matlab画自由曲面

          本文链接:https://www.haomeiwen.com/subject/gdkiwxtx.html