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

也可以写成矩阵形式

现在我想用MATLAB中的系数矩阵[a b c; d e f]来绘制它。
方法1plot
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方法2ezplot
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)

发布于 2016-01-08 07:55:42
我不完全确定,但我认为这是因为您是如何传递函数句柄的。如果你简单地做:
ezplot(ellipseExpr(1),ellipseExpr(2),[0,2*pi])你得到了同样的椭圆。

https://stackoverflow.com/questions/34671200
复制相似问题