diff --git a/source/exercises100.ktx b/source/exercises100.ktx index 9af07a9..34fd6f9 100644 --- a/source/exercises100.ktx +++ b/source/exercises100.ktx @@ -719,10 +719,18 @@ Generate a generic 2D Gaussian-like array (★★☆) hint: np.meshgrid, np.exp < a56 -X, Y = np.meshgrid(np.linspace(-1,1,10), np.linspace(-1,1,10)) -D = np.sqrt(X*X+Y*Y) +X, Y = np.meshgrid(np.linspace(-1, 1, 10), np.linspace(-1, 1, 10)) sigma, mu = 1.0, 0.0 -G = np.exp(-( (D-mu)**2 / ( 2.0 * sigma**2 ) ) ) +G = np.exp(-((X - mu) ** 2 + (Y - mu) ** 2) / (2.0 * sigma**2)) +print(G) + +# Another solution using the fact that a 2D Gaussian is separable +# Author: Nin17 +x = np.linspace(-1, 1, 10) +y = np.linspace(-1, 1, 10) +gx = np.exp(-((x - mu) ** 2 / (2.0 * sigma**2))) +gy = np.exp(-((y - mu) ** 2 / (2.0 * sigma**2))) +G = gy[:, None] * gx[None, :] print(G) < q57