【问题标题】:Creating a meshgrid for a function with comparisons为具有比较的函数创建网格网格
【发布时间】:2020-10-04 19:46:18
【问题描述】:

我正在尝试为以下函数绘制曲面图。

def G(X):
    if X[0]<X[1]:
        return 1
    else:
        return 2

为此,我使用以下代码

import numpy as np
x_values=np.linspace(-5,5,100)
y_values=np.linspace(-5,+5,100)
F_values=G(np.meshgrid(x_values,y_values))

import plotly
import plotly.graph_objects as go


trace=go.Surface(x=x_values,y=y_values,z=F_values)
data=[trace]
fig=go.Figure(data=data)
fig.show()
np.meshgrid(x_values,y_values)

这给了我错误:
具有多个元素的数组的真值是模棱两可的。使用 a.any() 或 a.all()

在进行一些搜索后,我意识到问题在于在函数 G 中进行比较并与网格网格同步。 (比如this

但我不知道如何解决这个问题。
非常感谢您在这个问题上的帮助

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    我不知道这是否是您想要的输出,但我认为您应该保持简单:

    import numpy as np
    import plotly
    import plotly.graph_objects as go
    
    
    def G(X,Y):
        r = [[]]
        for i in range(0,len(X)):
            r.append([])
            for j in range(0, len(Y)):
                if X[i] < Y[j]:
                    r[i].append(1)
                else:
                    r[i].append(2)
        return r
    
    
    x_values=np.linspace(-5,5,100)
    y_values=np.linspace(-5,+5,100)
    F_values=G(x_values,y_values)
    
    
    trace=go.Surface(x=x_values,y=y_values,z=F_values)
    data=[trace]
    fig=go.Figure(data=data)
    fig.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多