Линейное пространство на матрице - PullRequest
0 голосов
/ 11 июля 2020

Я бы хотел сделать что-то вроде linspace, но где я указываю углы матрицы.

Например:

[[-60  -2]
 [140   6]]

Я бы хотел заполнить более крупный матрица:

[[-60  -31  -2]
 [40   21    4]
 [140  73    6]]

1 Ответ

1 голос
/ 11 июля 2020

Я нашел решение:

import numpy as np
from scipy.interpolate import griddata

def interpolate(corners, n):
    grid_x, grid_y = np.mgrid[0:n:1, 0:n:1]
    points = [[0, 0], [0, n-1], [n-1, 0], [n-1, n-1]]

    return griddata(points, corners, (grid_x, grid_y), method='linear')


corners = [-60, -2, 140, 6]
interpolate(corners, 3)

И результат не совсем то, что я ожидал для средней точки, но он имеет смысл, поскольку интерполируется по диагонали:

array([[-60., -31.,  -2.],
       [ 40., -27.,   2.],
       [140.,  73.,   6.]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...