在MATLAB中绘制椭圆

时间:2016-01-08 06:59:48

标签: matlab graph plot

对于椭圆的参数方程,它具有以下样式:

  

enter image description here

或者可以写成矩阵形式

  

enter image description here

现在我想用MATLAB中的系数矩阵[a b c; d e f]绘制它

方法1 plot

function drawEllipse1(mat)
    t = linspace(0,2*pi,101);
    vec = [sin(t); cos(t); ones(1,length(t))];

    %calculate the coordinates of ellipse
    ellipse = mat1*vec;
    ellipseX = ellipse(1,:);
    ellipseY = ellipse(2,:);
    plot(ellipseX,ellipseY)

end

方法2 ezplot

function drawEllipse2(mat)
    syms t;
    ellipseExpr = mat*[sin(t); cos(t); 1];
    %pass a function handle
    ezplot(@(t)ellipseExpr(1),@(t)ellipseExpr(2),[0,2*pi])

end

然而,drawEllipse2()无法正常绘制椭圆?我不知道为什么。

mat = [1 2 3;4 5 6];
drawEllipse2(mat)

enter image description here

1 个答案:

答案 0 :(得分:2)

我不完全确定,但我认为它是因为你如何传递该函数句柄。 如果您只是这样做:

ezplot(ellipseExpr(1),ellipseExpr(2),[0,2*pi])

你得到相同的椭圆。 enter image description here