【问题标题】:How do make contourf in matlab如何在matlab中制作contourf
【发布时间】:2014-04-21 01:13:13
【问题描述】:

我有数据 (31,3),第 1 列是时间 (T),第 2 列是高度 (H),第 3 列是参数 (P) 我想绘制为轮廓。如何制作 P 的轮廓?作为 T 和 H 的函数。在此先感谢您。 T在18到24之间,H在150到600之间。

【问题讨论】:

    标签: matlab contourf


    【解决方案1】:

    所以我假设您想从不规则数据创建等高线图。基本程序是here。对于您的情况,

    t = data(:,1);
    h = data(:,2);
    p = data(:,3);
    
    n_elem = 33;
    tlin = linspace(min(t),max(t),n_elem);
    hlin = linspace(min(h),max(h),n_elem);
    
    [T,H] = meshgrid(tlin,hlin);
    
    % use this for new MATLAB
    f = scatteredInterpolant(t,h,p);
    P = f(T,H);
    
    % use this for older MATLAB
    P = griddata(t,h,p,T,H);
    
    contourf(T,H,P) 
    

    编辑:

    如果您使用的是旧版 MATLAB,它可能没有 scatterInterpolant。然后,改用griddata

    【讨论】:

    • 感谢@ysakamoto 的建议,但由于输入参数的类型为“double”,因此仍然无法正常工作。类型的未定义函数或方法“scatterInterpolant”
    • 你用的是哪个版本的matlab?
    • 感谢您的帮助@ysakamoto
    • 我忘记了另一个问题。如果我有多个像 P 这样的参数,表示 P2 和 P3 并且想要添加到同一个等高线图中。我是否还应该定义 P2 = griddata(t2,h2,p2,T2,H2) 和 P3 = griddata(t3,h2,p2,T2,H2)?以及如何将 P2 和 P3 合并到 P?
    • 如何在等高线图中添加多个变量?你的轮廓会相互交叉并变得凌乱。
    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多