파이썬 Matlab과 매트릭스 연산 대응표

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/wsp_1138886114/article/details/98613220

MATLAB 파이썬
numel (X) X.size
크기 (X, 2) X.shape [1]
A. * B A * B의
A * B의 A.dot (B)
엑스' X.conj (). T
X(1:5, :) X의 [0 : 5 :]
X (1 : 2, 4 : 7) X의 [0 : 2,3 : 7]
repmat (X, 2, 3) np.tile (X (2,3))
[AB] 또는 [A, B] np.hstack ((a, b))
[에이; 비] np.vstack ((a, b))
사람 (3,4) np.ones ((3, 4))

MATLAB 파이썬 함수 대응표

Matlab2python : http://ompclib.appspot.com/m2py

numpy.array numpy.matrix 노트
ndims(a) ndim(a) 또는 a.ndim A (텐서 / 순위) 차원을 얻기
numel(a) size(a) 또는 a.size 배열 요소 수를 가져
size(a) shape(a) 또는 a.shape 행렬의 "크기"를 얻을
size(a,n) a.shape[n-1] 의 요소의 개수 얻을 N 어레이 (A)의 사이즈를 제. (파이썬은 0 기반 인덱스를 사용하는 반면 MATLAB® 1 기반 색인을 사용합니다 노트 '색인'참조 )
[ 1 2 3; 4 5 6 ] array([[1.,2.,3.], [4.,5.,6.]]) mat([[1.,2.,3.], [4.,5.,6.]]) 또는 mat("1 2 3; 4 5 6") 2 × 3 행렬을 그대로
[ a b; c d ] vstack([hstack([a,b]), hstack([c,d])]) bmat('a b; c d') 블록 A, B, C 및 D에서, 매트릭스를 구성
a(end) a[-1] a[:,-1][0,0] 1xn 행렬 액세스 마지막 요소 a
a(2,5) a[1,4] 둘째 행에 접속 소자, 열 다섯 번째
a(2,:) a[1] 또는 a[1,:] 전체의 두 번째 행 a
a(1:5,:) a[0:5]또는 a[:5]또는a[0:5,:] 처음 5 행 a
a(end-4:end,:) a[-5:] 의 마지막 5 행 a
a(1:3,5:9) a[0:3][:,4:9] 행 9-3에 하나 열 다섯 a. 이 읽기 전용 부여합니다 액세스.
a([2,4,5],[1,3]) a[ix_([1,3,4],[0,2])] 행 2,4 및 5 열 1, 3이 행렬이 변경 될 수 있으며, 일정한 슬라이스를 필요로하지 않는다.
a(3:2:21,:) a[ 2:21:2,:] 다른 모든 행 a, 세 번째에서 시작하여 21로 이동
a(1:2:end,:) a[ ::2,:] 다른 모든 행 a첫 번째로 시작,
a(end:-1:1,:) 또는 flipud(a) a[ ::-1,:] a 역순 행
a([1:end 1],:) a[r_[:len(a),0]] a 말미에 첨부 된 첫번째 행의 복사본
a.' a.transpose() 또는 a.T 의 전치 a
a' a.conj().transpose() 또는 a.conj().T a.H 의 켤레 전치 a
a * b dot(a,b) a * b 행렬 곱셈
a .* b a * b multiply(a,b) 요소 현명한 곱셈
a./b a/b 분할 요소 와이즈
a.^3 a**3 power(a,3) 요소 현명한 지수
(a>0.5) (a>0.5) 행렬 I는 j 번째 원소 (a_ij> 0.5)
find(a>0.5) nonzero(a>0.5) find the indices where (a > 0.5)
a(:,find(v>0.5)) a[:,nonzero(v>0.5)[0]] a[:,nonzero(v.A>0.5)[0]] extract the columms of a where vector v > 0.5
a(:,find(v>0.5)) a[:,v.T>0.5] a[:,v.T>0.5)] extract the columms of a where column vector v > 0.5
a(a<0.5)=0 a[a<0.5]=0 a with elements less than 0.5 zeroed out
a .* (a>0.5) a * (a>0.5) mat(a.A * (a>0.5).A) a with elements less than 0.5 zeroed out
a(:) = 3 a[:] = 3 set all values to the same scalar value
y=x y = x.copy() numpy assigns by reference
y=x(2,:) y = x[1,:].copy() numpy slices are by reference
y=x(:) y = x.flatten(1) turn array into vector (note that this forces a copy)
1:10 arange(1.,11.) or r_[1.:11.] or r_[1:10:10j] mat(arange(1.,11.)) or r_[1.:11.,'r'] create an increasing vector see note ‘RANGES’
0:9 arange(10.) or r_[:10.] or r_[:9:10j] mat(arange(10.)) or r_[:10.,'r'] create an increasing vector see note ‘RANGES’
[1:10]' arange(1.,11.)[:, newaxis] r_[1.:11.,'c'] create a column vector
zeros(3,4) zeros((3,4)) mat(...) 3x4 rank-2 array full of 64-bit floating point zeros
zeros(3,4,5) zeros((3,4,5)) mat(...) 3x4x5 rank-3 array full of 64-bit floating point zeros
ones(3,4) ones((3,4)) mat(...) 3x4 rank-2 array full of 64-bit floating point ones
eye(3) eye(3) mat(...) 3x3 identity matrix
diag(a) diag(a) mat(...) vector of diagonal elements of a
diag(a,0) diag(a,0) mat(...) square diagonal matrix whose nonzero values are the elements of a
rand(3,4) random.rand(3,4) mat(...) random 3x4 matrix
linspace(1,3,4) linspace(1,3,4) mat(...) 4 equally spaced samples between 1 and 3, inclusive
[x,y]=meshgrid(0:8,0:5) mgrid[0:9.,0:6.] or meshgrid(r_[0:9.],r_[0:6.] mat(...) two 2D arrays: one of x values, the other of y values
ogrid[0:9.,0:6.] or ix_(r_[0:9.],r_[0:6.] mat(...) the best way to eval functions on a grid
[x,y]=meshgrid([1,2,4],[2,4,5]) meshgrid([1,2,4],[2,4,5]) mat(...)
ix_([1,2,4],[2,4,5]) mat(...) the best way to eval functions on a grid
repmat(a, m, n) tile(a, (m, n)) mat(...) create m by n copies of a
[a b] concatenate((a,b),1) or hstack((a,b))or column_stack((a,b)) or c_[a,b] concatenate((a,b),1) concatenate columns of a and b
[a; b] concatenate((a,b)) or vstack((a,b))or r_[a,b] concatenate((a,b)) concatenate rows of a and b
max(max(a)) a.max() maximum element of a (with ndims(a)<=2 for matlab)
max(a) a.max(0) maximum element of each column of matrix a
max(a,[],2) a.max(1) maximum element of each row of matrix a
max(a,b) maximum(a, b) compares a and b element-wise, and returns the maximum value from each pair
norm(v) sqrt(dot(v,v)) or Sci.linalg.norm(v) or linalg.norm(v) sqrt(dot(v.A,v.A)) or Sci.linalg.norm(v)or linalg.norm(v) L2 norm of vector v
a & b logical_and(a,b) element-by-element AND operator (Numpy ufunc) see note ‘LOGICOPS’
a | b logical_or(a,b) element-by-element OR operator (Numpy ufunc) see note ‘LOGICOPS’
bitand(a,b) a & b bitwise AND operator (Python native and Numpy ufunc)
bitor(a,b) a | b bitwise OR operator (Python native and Numpy ufunc)
inv(a) linalg.inv(a) inverse of square matrix a
pinv(a) linalg.pinv(a) pseudo-inverse of matrix a
rank(a) linalg.matrix_rank(a) rank of a matrix a
a\b linalg.solve(a,b) if a is square linalg.lstsq(a,b) otherwise solution of a x = b for x
b/a Solve a.T x.T = b.T instead solution of x a = b for x
[U,S,V]=svd(a) U, S, Vh = linalg.svd(a), V = Vh.T singular value decomposition of a
chol(a) linalg.cholesky(a).T cholesky factorization of a matrix (chol(a) in matlab returns an upper triangular matrix, but linalg.cholesky(a) returns a lower triangular matrix)
[V,D]=eig(a) D,V = linalg.eig(a) eigenvalues and eigenvectors of a
[V,D]=eig(a,b) V,D = Sci.linalg.eig(a,b) eigenvalues and eigenvectors of a,b
[V,D]=eigs(a,k) find the k largest eigenvalues and eigenvectors of a
[Q,R,P]=qr(a,0) Q,R = Sci.linalg.qr(a) mat(...) QR decomposition
[L,U,P]=lu(a) L,U = Sci.linalg.lu(a) or LU,P=Sci.linalg.lu_factor(a) mat(...) LU decomposition (note: P(Matlab) == transpose(P(numpy)) )
conjgrad Sci.linalg.cg mat(...) Conjugate gradients solver
fft(a) fft(a) mat(...) Fourier transform of a
ifft(a) ifft(a) mat(...) inverse Fourier transform of a
sort(a) sort(a) or a.sort() mat(...) sort the matrix
[b,I] = sortrows(a,i) I = argsort(a[:,i]), b=a[I,:] sort the rows of the matrix
regress(y,X) linalg.lstsq(X,y) multilinear regression
decimate(x, q) Sci.signal.resample(x, len(x)/q) downsample with low-pass filtering
unique(a) unique(a)
squeeze(a) a.squeeze()

MATLAB

numpy Notes
help func info(func) or help(func) or func? (in Ipython) get help on the function func
which func (See note ‘HELP’) find out where func is defined
type func source(func) or func?? (in Ipython) print source for func (if not a native function)
a && b a and b short-circuiting logical AND operator (Python native operator); scalar arguments only
a || b a or b short-circuiting logical OR operator (Python native operator); scalar arguments only
1*i,1*j,1i,1j 1j complex numbers
eps spacing(1) Distance between 1 and the nearest floating point number
ode45 scipy.integrate.ode(f).set_integrator('dopri5') integrate an ODE with Runge-Kutta 4,5
ode15s scipy.integrate.ode(f).\ set_integrator('vode', method='bdf', order=15) integrate an ODE with BDF

추천

출처blog.csdn.net/wsp_1138886114/article/details/98613220