gpt4 book ai didi

matlab - 在 MATLAB 中将多个 2D 图堆叠为单个 3D 图

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

我有多个 FFT 图,我想在一个图中一起显示它们,就像附图一样。

enter image description here

我不知道如何开始。任何帮助将不胜感激!

最佳答案

这样做还不错。您可以使用 plot3帮助你促进这种策划。使用 plot3,您需要做的是为每个绘图设置 y 值,而不是 z 值,如果您想将图表,您需要改变此 3D 绘图中的 y 值。举个例子吧。假设我想以这种方式将 4 个图表放在一个图上。这些图表是:

  • y = sin x
  • y = cos x
  • y = exp(-x)*sin(x)
  • y = exp(-x)*cos(x)

因此,您将拥有一组对于每个图都相同的 x 值。您将拥有一组不同的 y 值,并且取决于图形本身。您将使这些成为 z 值,然后对于这些图表中的每一个,您将具有不同的 y 值,但对于每个图,它们将全部 是一样的,因为你会想要使用它们来相应地偏移你的每个图形以将它们分开。因此:

%// Define the x values
x = (0:0.001:10).';
xMat = repmat(x, 1, 4); %// For plot3

%// Define y values
y = 0:0.001:0.003;
yMat = repmat(y, numel(x), 1); %//For plot3

%// Define z values
z1 = sin(x);
z2 = cos(x);
z3 = exp(-x).*sin(x);
z4 = exp(-x).*cos(x);
zMat = [z1 z2 z3 z4]; %// For plot3

plot3(xMat, yMat, zMat, 'b'); %// Make all traces blue
grid;
xlabel('x'); ylabel('y'); zlabel('z');
view(40,40); %// Adjust viewing angle so you can clearly see data

这是我得到的数字:

enter image description here


诀窍是形成正确的矩阵,以便正确地进入 plot3plot3 的工作原理是您可以为您的 x,y,z 值放置单个向量,或者您可以使用矩阵 xMat,yMat,zMat 代替。 xMatyMatzMat 的每个矩阵的每一列表示要放置在绘图中的单个 迹线。因此,每个信号的 xMat 的每一列都归为一列。因此,我为我的 x 值创建了一个向量,并为我们拥有的尽可能多的信号复制它们。在这种情况下,我们有 4 个信号。 y 值必须以不同方式播放。您需要弄清楚每个信号之间允许有多少间距。我为每个信号选择了 0.001。因此,我创建了存储在 yMat 中的矩阵,相应地,每一列代表 00.001 0.0020.003z 值将成为放置在不同列中的每个信号的 y 值,我使用 zMat 创建了这些值。

您需要试验一下以获得每个轴的正确间距和正确边界,但这应该可以帮助您入门。祝你好运!

关于matlab - 在 MATLAB 中将多个 2D 图堆叠为单个 3D 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24987216/

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