我正在尝试从ezplot
中提取数据,但是当我绘制提取的数据时,我没有得到相同的图表(a
和b
不同)
有人可以详细说明出了什么问题吗?
以下是代码:
h = @(x,y)(x-((1/0.0175)*(y/5500)*(1+(y/5500)^9)))
a = ezplot(h,[0,700,0,7000]);
t = get(a,'xdata');
M = get(a,'ydata');
theta = transpose(t)
figure
b = plot(theta,M)
ezplot
生成
而plot
生成
这是我从轮廓中提取的结果,仍然有一条直线3
答案 0 :(得分:2)
ezplot
返回contour
个对象。要提取x
和y
数据,您需要使用get(a,'contourMatrix')
。然后,x
数据将位于第一列,y
数据将位于第二列中
t = get(a,'contourMatrix');
x = t(1, :);
y = t(2, :);
完全按照你的例子我们得到
h = @(x,y)(x-((1/0.0175)*(y/5500)*(1+(y/5500)^9)))
a = ezplot(h,[0,700,0,7000]);
t = get(a,'contourMatrix');
x = t(1, :);
y = t(2, :);
figure;
b = plot(x, y);
xlabel('x');
ylabel('y');
title('({x}-(({1}/{0.0175}) ({y}/{5500}) ({1}+({y}/{5500})^{9}))) = {0}');
结果ezplot
是
和plot
答案 1 :(得分:1)
您在致电get(a,'xdata')
和get(a,'ydata')
时收到x and y axis values。这就是你获得直线的原因。
试试这个:
h = @(x,y)(x-((1/0.0175)*(y/5500)*(1+(y/5500)^9)));
ezplot(h,[0,700,0,7000]);
a= get(gca,'Children');
l=get(a,'Children');
t = get(l,'xdata');
M = get(l,'ydata');
theta = transpose(t);
figure
b = plot(theta,M);
来源: