【问题标题】:Contour plot for 3D vector3D 向量的等高线图
【发布时间】:2014-11-13 17:12:16
【问题描述】:

我正在尝试为 z = 0 的 xy 平面中的自定义函数返回的 3D 矢量生成等高线图。

我试过了,但我得到一个空图:

% Stand in for the real function I want to plot.
f = @(x, y, z) [x ^ 2, y ^ 2, x * y + z];

x = linspace(-5, 5, 50);
y = linspace(-5, 5, 50);
z = zeros(length(x), length(y), 3);

% I know this can be vectorized but the function I really want to graph can't
% be.
for i = 1:length(x)
    for j = 1:length(y)
        z(i, j, :) = f(x(i), y(j), 0);
    end
end

figure;
axis equal;
contour(x, y, z);

【问题讨论】:

    标签: matlab contour


    【解决方案1】:

    您应该提及您的轴将是什么。您有 x,y 和来自 f 的 3 个输出。

    如果您将f3 输出视为要绘制的输出,那么您应该使用,

    contour(z(:,:,1),z(:,:,2),z(:,:,3));
    

    这会给你这个,

    我认为您正在寻找的是一个具有一个输出的函数,例如,

    f = @(x, y,z) [x ^ 2 + y ^ 2 + x * y + z ];
    x = linspace(-5, 5, 50);
    y = linspace(-5, 5, 50);
    z = zeros(length(x), length(y));
    for i = 1:length(x)
        for j = 1:length(y)
           z(i, j) = f(x(i), y(j),0);
        end
    end
    contour(x,y,z,20);
    

    【讨论】:

    • 我取了f 产生的向量的大小,这给了我想要的结果。
    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 2016-11-10
    相关资源
    最近更新 更多