gpt4 book ai didi

matlab - 如何绘制两个变量的分段函数的 3D 图?

转载 作者:行者123 更新时间:2023-12-02 19:55:35 25 4
gpt4 key购买 nike

我正在尝试在 MATLAB 中绘制以下函数:

1

目标是将所有不同的条件拼接到一张图中以形成整体 CDF 图。到目前为止我尝试过的方法如下:

x=linspace(0,1,20);
y=linspace(0,1,20);
Z=x.^y;
plot3(x,y,Z)
hold on
plot3(x,0,0);
plot3(0,y,0);

我不确定如何为 x>1, y>1 绘制 1 的图形,也不确定是否有办法使该图成为这组条件下的实体曲面。我尝试使用 rand() 生成器在 01 之间生成 20 多个数字,这显示了变量可以定位的区域。然而,当给定区域内有散布的线条时,它看起来很困惑。我宁愿它是一个坚固的表面。

我可以使用特定的命令吗?我在一些示例中看到使用 Mesh() 使图形变得立体,但不确定这是否适用于数据集。

最佳答案

您可以通过生成 x 的规则网格来实现此目的和y值为 meshgrid ,修改 Z 中的值与 logical indexing ,并用 surf 显示结果:

% Grid points spanning from -1 to 2 for x and y:
[x, y] = meshgrid(linspace(-1, 2, 91));

% Fill Z with zeroes to start (satisfies condition 1 by default):
Z = zeros(size(x));

% Condition 2:
index = (x >= 0) & (x <= 1) & (y >= 0) & (y <= 1);
Z(index) = x(index).*y(index);

% Condition 3:
index = (x >= 0) & (x <= 1) & (y > 1);
Z(index) = x(index);

% Condition 4:
index = (y >= 0) & (y <= 1) & (x > 1);
Z(index) = y(index);

% Condition 5:
Z((x > 1) & (y > 1)) = 1;

% Plot surface:
surf(x, y, Z, 'EdgeColor', 'none');

enter image description here

注意:这假设未指定的条件,例如( x < 0y > 1 )和( y < 0x > 1 ),也应该为零。

关于matlab - 如何绘制两个变量的分段函数的 3D 图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53177644/

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