如何在MATLAB中用两个变量绘制曲线?

时间:2016-07-12 07:46:19

标签: matlab

我想用两个变量绘制曲线,例如f(x,y)= 0:

x^2+y^2-2ax+2by+c=0(a,b,c是常数,x,y是变量)

当然,在上面的例子中,它是一个圆圈,所以我可以用圆的形式写出上面的等式并计算它的中心和半径。然后我可以把它绘制出来。

但下次如果它不是一个圆圈(例如有' xy'条款或者有' x ^ 3,y ^ 3' (),有没有办法在x-y平面上绘制出来?

我知道如何使用meshgrid在3D绘图中绘制f(x,y),但我想在2D形式中绘制f(x,y)= 0

2 个答案:

答案 0 :(得分:0)

建议1:

fcontour

您可以这样使用它:

f = @(x,y) x.^2 + y.^2
fcontour(f,[xmin xmax ymin ymax])

这是在R2016a中引入的。

建议2:

您可能需要确定每个等式的x值和y值,然后绘制这些值。

您可以使用anonymous functions自动执行此操作。这里的好处是你可以创建一个匿名函数的单元格数组并循环遍历这些函数。

% // Generate the x and y values
x=-2*pi:0.01:2*pi;
y=-2*pi:0.01:2*pi;

创建将保持等式的匿名函数。您可以根据需要设计这些设计。我做的这个特殊的匿名函数创建了一个矩阵,其中第一列保存x值,第二列保存y值。对于每个函数,您可能会有不同的x值和y值。

a=@(x,y) ([cos(x);sin(y)].');   
a1 = @(x,y) ([cos(x).^2;sin(x).^2].');

将它们放入单元格数组

t{1} = a;
t{2} = a1;

然后你可以遍历你的匿名函数

for n=1:length(t)
    f = t{n};        
    subplot(2,1,n)
    plot(f(y,x),'LineWidth',5);        
end

enter image description here

答案 1 :(得分:-1)

您可以查看散点图函数:http://uk.mathworks.com/help/matlab/ref/scatter.html

[edit]或只使用plot(x,y)[/ edit]