gpt4 book ai didi

matlab - 如何在Matlab中绘制曲线

转载 作者:太空宇宙 更新时间:2023-11-03 19:50:08 25 4
gpt4 key购买 nike

我正在绘制一个有 N 个节点和 M 个边的图。从节点 A 到节点 B 以及节点 B 到 A 都可以有一条边,所以我不能使用直线来绘制两条线。我怎样才能使其中一个弯曲以便与另一个区别开来?这是我在 j 和 k 之间绘制一条直线的代码。

line([Xloc(j) Xloc(k)], [Yloc(j) Yloc(k)], 'LineStyle', '-');

最佳答案

您需要定义要绘制的中间点。

然后您可以手动定义它们,或者查看样条插值。

使用样条插值,您只需要中间的一个点即可确定完整曲线。

在 MATLAB 中,您可以找到执行类似操作的演示 spline2d。这是它的要点:

% end points
X = [0 1];
Y = [0 0];
% intermediate point (you have to choose your own)
Xi = mean(X);
Yi = mean(Y) + 0.25;

Xa = [X(1) Xi X(2)];
Ya = [Y(1) Yi Y(2)];

t = 1:numel(Xa);
ts = linspace(min(t),max(t),numel(Xa)*10); % has to be a fine grid
xx = spline(t,Xa,ts);
yy = spline(t,Ya,ts);

plot(xx,yy); hold on; % curve
plot(X,Y,'or') % end points
plot(Xi,Yi,'xr') % intermediate point

Resulting plot

splined2 中,它用于更大的点集,但没有中间点。如果你只是想让你的点顺利连接起来,那可能值得一看。

关于matlab - 如何在Matlab中绘制曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com