2015-03-20 57 views
6

Tôi muốn nhân hai vectơ, một cột (nghĩa là, (N + 1) x1), một hàng (ví dụ, 1x (N + 1)) để cung cấp (N + 1) ma trận x (N + 1). Tôi khá mới để NumPy nhưng có một số kinh nghiệm với MATLAB, đây là mã tương đương trong MATLAB với những gì tôi muốn trong NumPy:Nhân vectơ cột và hàng trong Numpy

n = 0:N; 
xx = cos(pi*n/N)'; 
T = cos(acos(xx)*n'); 

trong NumPy Tôi đã thử:

import numpy as np 
n = range(0,N+1) 

pi = np.pi 
xx = np.cos(np.multiply(pi/float(N), n)) 

xxa = np.asarray(xx) 
na = np.asarray(n) 
nd = np.transpose(na) 

T = np.cos(np.multiply(np.arccos(xxa),nd)) 

tôi thêm đường asarray sau khi tôi nhận thấy rằng không có nó Numpy dường như được điều trị xx và n là danh sách. np.shape(n), np.shape(xx), np.shape(na)np.shape(xxa) cho kết quả tương tự: (100001L,)

Trả lời

10

np.multiply chỉ làm phần tử bằng cách nhân tố. Bạn muốn có một sản phẩm bên ngoài. Sử dụng np.outer:

np.outer(np.arccos(xxa), nd) 
Các vấn đề liên quan