

最近学習を始めた者です。三次元グラフを二次元配列で表示させたいのですが、どういうわけか「nan」と出てしまいます。  
どなたかわかる方がおられれば教えていただきたいです。

[![](https://i.stack.imgur.com/OQd5m.png)](https://i.stack.imgur.com/OQd5m.png)


CC BY-SA 4.0
2018-07-04T16:26:57.950
45316
2018-07-05T05:06:59.900
2018-07-05T05:06:59.900
19110
29182
question
python python3 numpy
得られるはずの結果とは違う結果が帰ってきてしまいます。「nan」について教えてください。


`f3`関数の戻り値がないことが原因で、値が割り当てられず`nan`になります。  
関数の末尾に `return answer` を追加すると値が割り当てられます。

[code]

    import numpy as np
    import matplotlib.pyplot as plt
    
    def f3(x0, x1):
        r = 2*x0**2+x1**2
        ans = r*np.exp(-r)
        return ans #この行を追加
    
    xn = 9
    x0 = np.linspace(-2,2,xn)
    x1 = np.linspace(-2,2,xn)
    y = np.zeros((len(x0),len(x1)))
    for i0 in range(xn):
        for i1 in range(xn):
          y[i1,i0]=f3(x0[i0],x1[i1])
    
    print(x0)
    print(np.round(y,1))
    
[/code]

質問の際は[確認可能なサンプルコード](https://ja.stackoverflow.com/help/mcve)になるようにスクリーンショットではなくソースコードを貼った方が回答が付きやすいと思われます。


CC BY-SA 4.0
2018-07-04T22:51:24.613
45320
2018-07-04T22:51:24.613
9820
45316
answer