使用 SURF 在 matlab 中实时绘图

发布于 2024-11-26 23:00:02 字数 365 浏览 0 评论 0原文

我想在 matlab 中使用 surf 绘制 3d 图形。我知道如何仅使用 surf: 来绘制它:

k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);
p=surf(x,y,z);

但我想实时绘制它,并且我想使用 set 更新值。 我累了:set(p,"XData",Xvalue,"YData",Yvalue,"ZData",Zvalue);但它给了我错误。有人实时绘制使用 surf 的图吗?

i want to plot a 3d graph using surf in matlab. i know how to plot it just using surf:

k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);
p=surf(x,y,z);

but i want to plot this in realtime, and i want to update the values using set.
I tired:set(p,"XData",Xvalue,"YData",Yvalue,"ZData",Zvalue); but its giving me errors. has anyone plotted using surf in realtime?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

海之角 2024-12-03 23:00:02

1) 您可以使用 linkdata 命令或工具栏按钮(甚至是绘图窗口中的工具 -> 链接)

2) 以编程方式:您需要调用命令“refreshdata”来表示新数据可用:

%% Define the data
t=linspace(0,2*pi,40);
y=sin(t);

%% Create the plot and set teh datasources
h=plot(t,y)
set(h,'YDataSource','y')
set(h,'XDataSource','t')

%% Now update the data and the plot
pause
y=sin(2*t);
refreshdata

这将显示它plot,但预计 surf 的行为会相同。

1) you can use the linkdata command or toolbar button (or even Tools -> Link from the plot window)

2) programmatically: you need to call the command 'refreshdata' to signal that new data is available:

%% Define the data
t=linspace(0,2*pi,40);
y=sin(t);

%% Create the plot and set teh datasources
h=plot(t,y)
set(h,'YDataSource','y')
set(h,'XDataSource','t')

%% Now update the data and the plot
pause
y=sin(2*t);
refreshdata

This shows it for the plot, but expect surf will behave the same.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文