scipy convert из matlab, ошибка: массивы должны иметь одинаковое количество измерений - PullRequest
0 голосов
/ 20 января 2012

У меня есть этот код в MATLAB:

ext = [lat(end, :); lat; lat(1, :)];
lat = [ext(:, end) ext ext(:, 1)];

и я попытался сделать это в SciPy:

ext = sc.vstack([[lat[-1,:]], [lat], [lat[0,:]]])
lat = sc.vstack([[ext[:]], [ext], [ext[:,0]]])

но это дает мне ошибки:

ValueError: массивы должны иметь одинаковое количество измерений

и

return _nx.concatenate (map (atleast_2d, tup), 0) -> (в / usr / lib / pymodules ... это определение функции vstack)

Куда я иду не так?

1 Ответ

1 голос
/ 20 января 2012

Вы складываетесь вертикально в ext и горизонтально в lat.

Попробуйте:

ext = sc.vstack([lat[-1,:], lat, lat[0,:]])
lat = sc.hstack([ext[:,-1], ext, ext[:,0]])

РЕДАКТИРОВАТЬ:

Код выше будет работать, только если lat изначально матрица, а не массив.Если это не так, вы можете конвертировать lat = sc.matrix(lat).Также обратите внимание, что я убрал лишние квадратные скобки в аргументе hstack и vstack.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...