Matlab函数与Python函数对应关系

常用函数

imagesc函数

MATLAB中的imagesc函数相当于Python中的

1
plt.imshow(obs_im_global, extent=[0, 1, 0, 1])

imread函数

opencv的一个像素为:[B,G,R] ,matplotlib的一个像素为:[R,G,B]。MATLAB中的imread函数相当于opencv中的

1
2
obs_im = cv2.imread('../images/ian1.jpg')
obs_im = obs_im[:, :, ::-1]

reshape函数

MATLAB中的reshape函数相当于numpy中的reshape时要加上参数order="F"

MATLAB:

1
2
3
4
5
6
7
8
9
10
11
12
13
>> mat = [1:12]

mat =

1 2 3 4 5 6 7 8 9 10 11 12

>> reshape(mat,[3,4])

ans =

1 4 7 10
2 5 8 11
3 6 9 12

numpy:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mat = np.arange(1,13)

mat

array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

r = np.reshape(mat,(3,4))

array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])

r.shape

(3, 4)

numpy加上修正参数

1
2
3
4
5
6
r = np.reshape(mat, (3,4), order="F")

r
array([[ 1, 4, 7, 10],
[ 2, 5, 8, 11],
[ 3, 6, 9, 12]])

cell

MATLAB中的cell在Python中存储的时候相当于List

NumPy for MATLAB users

该内容来自matlab-numpy

Help

MATLAB/OctavePythonDescription
doc help -i % browse with Infohelp()Browse help interactively
help help or doc dochelpHelp on using help
help plothelp(plot) or ?plotHelp for a function
help splines or doc splineshelp(pylab)Help for a toolbox/library package
demoDemonstration examples

Searching available documentation

MATLAB/OctavePythonDescription
lookfor plotSearch help files
helphelp(); modules [Numeric]List available packages
which plothelp(plot)Locate functions

Using interactively

MATLAB/OctavePythonDescription
help -Help on operator syntax

Arithmetic operators

MATLAB/OctavePythonDescription
a=1; b=2;a=1; b=1Assignment; defining a number
a + ba + b or add(a,b)Addition
a - ba - b or subtract(a,b)Subtraction
a * ba * b or multiply(a,b)Multiplication
a / ba / b or divide(a,b)Division
a .^ ba ** b power(a,b) pow(a,b)Power, $a^b$
rem(a,b)a % b remainder(a,b) fmod(a,b)Remainder
a+=1a+=b or add(a,b,a)In place operation to save array creation overhead
factorial(a)Factorial, $n!$

Relational operators

MATLAB/OctavePythonDescription
a == ba == b or equal(a,b)Equal
a < ba < b or less(a,b)Less than
a > ba > b or greater(a,b)Greater than
a <= ba <= b or less_equal(a,b)Less than or equal
a >= ba >= b or greater_equal(a,b)Greater than or equal
a ~= ba != b or not_equal(a,b)Not Equal

Logical operators

MATLAB/OctavePythonDescription
a && ba and bShort-circuit logical AND
`ab`a or bShort-circuit logical OR
a & b or and(a,b)logical_and(a,b) or a and bElement-wise logical AND
`ab*or*or(a,b)`logical_or(a,b) or a or bElement-wise logical OR
xor(a, b)logical_xor(a,b)Logical EXCLUSIVE OR
~a or not(a) ~a or !alogical_not(a) or not aLogical NOT
any(a)True if any element is nonzero
all(a)True if all elements are nonzero

root and logarithm

MATLAB/OctavePythonDescription
sqrt(a)math.sqrt(a)Square root
log(a)math.log(a)Logarithm, base $e$ (natural)
log10(a)math.log10(a)Logarithm, base 10
log2(a)math.log(a, 2)Logarithm, base 2 (binary)
exp(a)math.exp(a)Exponential function

Round off

MATLAB/OctavePythonDescription
round(a)around(a) or math.round(a)Round
ceil(a)ceil(a)Round up
floor(a)floor(a)Round down
fix(a)fix(a)Round towards zero

Mathematical constants

MATLAB/OctavePythonDescription
iz = 1jImaginary unit
z = 3+4iz = 3+4j or z = complex(3,4)A complex number, $3+4i$
abs(z)abs(3+4j)Absolute value (modulus)
real(z)z.realReal part
imag(z)z.imagImaginary part
arg(z)Argument
conj(z)z.conj(); z.conjugate()Complex conjugate

Trigonometry

MATLAB/OctavePythonDescription
a=[2 3 4 5];a=array([2,3,4,5])Row vector, $1 \times n$-matrix
adash=[2 3 4 5]';array([2,3,4,5])[:,NewAxis] array([2,3,4,5]).reshape(-1,1) r_[1:10,'c']Column vector, $m \times 1$-matrix

Sequences

MATLAB/OctavePythonDescription
[a a]concatenate((a,a))Concatenate two vectors
[1:4 a]concatenate((range(1,5),a), axis=1)

Repeating

MATLAB/OctavePythonDescription
[a a]concatenate((a,a))1 2 3, 1 2 3
a.repeat(3) or1 1 1, 2 2 2, 3 3 3
a.repeat(a) or1, 2 2, 3 3 3

Miss those elements out

MATLAB/OctavePythonDescription
a.*aa*aMultiply two vectors
dot(u,v)dot(u,v)Vector dot product, $u \cdot v$

Matrices

MATLAB/OctavePythonDescription
a = [2 3;4 5]a = array([[2,3],[4,5]])Define a matrix

Concatenation (matrices); rbind and cbind

MATLAB/OctavePythonDescription
[a ; b]concatenate((a,b), axis=0) vstack((a,b))Bind rows
[a , b]concatenate((a,b), axis=1) hstack((a,b))Bind columns
concatenate((a,b), axis=2) dstack((a,b))Bind slices (three-way arrays)
[a(:), b(:)]concatenate((a,b), axis=None)Concatenate matrices into one vector
[1:4 ; 1:4]concatenate((r_[1:5],r_[1:5])).reshape(2,-1) vstack((r_[1:5],r_[1:5]))Bind rows (from vectors)
[1:4 ; 1:4]'Bind columns (from vectors)

Array creation

MATLAB/OctavePythonDescription
b = ab = a.copy()Copy of a

Indexing and accessing elements (Python: slicing)

MATLAB/OctavePythonDescription
a(:,1) = 99a[:,0] = 99
a(:,1) = [99 98 97]'a[:,0] = array([99,98,97])
a(a>90) = 90;(a>90).choose(a,90) a.clip(min=None, max=90)Clipping: Replace all elements over 90
a.clip(min=2, max=5)Clip upper and lower values

Transpose and inverse

MATLAB/OctavePythonDescription
a'a.conj().transpose()Transpose
a.' or transpose(a)a.transpose()Non-conjugate transpose
det(a)linalg.det(a) orDeterminant
inv(a)linalg.inv(a) orInverse
pinv(a)linalg.pinv(a)Pseudo-inverse
norm(a)norm(a)Norms
eig(a)linalg.eig(a)[0]Eigenvalues
svd(a)linalg.svd(a)Singular values
chol(a)linalg.cholesky(a)Cholesky factorization
[v,l] = eig(a)linalg.eig(a)[1]Eigenvectors
rank(a)rank(a)Rank

Sum

MATLAB/OctavePythonDescription
sum(a)a.sum(axis=0)Sum of each column
sum(a')a.sum(axis=1)Sum of each row
sum(sum(a))a.sum()Sum of all elements
a.trace(offset=0)Sum along diagonal
cumsum(a)a.cumsum(axis=0)Cumulative sum (columns)

Sorting

MATLAB/OctavePythonDescription
a = [ 4 3 2 ; 2 8 6 ; 1 4 7 ]a = array([[4,3,2],[2,8,6],[1,4,7]])Example data
sort(a(:))a.ravel().sort() orFlat and sorted
sort(a)a.sort(axis=0) or msort(a)Sort each column
sort(a')'a.sort(axis=1)Sort each row
sortrows(a,1)a[a[:,0].argsort(),]Sort rows (by first row)
a.ravel().argsort()Sort, return indices
a.argsort(axis=0)Sort each column, return indices
a.argsort(axis=1)Sort each row, return indices

Maximum and minimum

MATLAB/OctavePythonDescription
max(a)a.max(0) or amax(a [,axis=0])max in each column
max(a')a.max(1) or amax(a, axis=1)max in each row
max(max(a))a.max() ormax in array
[v i] = max(a)return indices, i
max(b,c)maximum(b,c)pairwise max
cummax(a)
a.ptp(); a.ptp(0)max-to-min range

Matrix manipulation

MATLAB/OctavePythonDescription
fliplr(a)fliplr(a) or a[:,::-1]Flip left-right
flipud(a)flipud(a) or a[::-1,]Flip up-down
rot90(a)rot90(a)Rotate 90 degrees
repmat(a,2,3) kron(ones(2,3),a)kron(ones((2,3)),a)Repeat matrix: [ a a a ; a a a ]
triu(a)triu(a)Triangular, upper
tril(a)tril(a)Triangular, lower

Equivalents to “size”

MATLAB/OctavePythonDescription
a .* ba * b or multiply(a,b)Elementwise operations
a * bmatrixmultiply(a,b)Matrix product (dot product)
inner(a,b) orInner matrix vector multiplication $a\cdot b’$
outer(a,b) orOuter product
kron(a,b)kron(a,b)Kronecker product
a / bMatrix division, $b{\cdot}a^{-1}$
a \ blinalg.solve(a,b)Left matrix division, $b^{-1}{\cdot}a$ \newline (solve linear equations),a \ b先求的是inv(a)而不是pinv(a)
vdot(a,b)Vector dot product
cross(a,b)Cross product

Find; conditional indexing

MATLAB/OctavePythonDescription
theta = 0:.001:2*pi; r = sin(2*theta);theta = arange(0,2*pi,0.001) r = sin(2*theta)
polar(theta, rho)polar(theta, rho)

Histogram plots

MATLAB/OctavePythonDescription
hist(randn(1000,1))
hist(randn(1000,1), -4:4)
plot(sort(a))

3d data

Contour and image plots

MATLAB/OctavePythonDescription
contour(z)levels, colls = contour(Z, V, origin='lower', extent=(-3,3,-3,3)) clabel(colls, levels, inline=1, fmt='%1.1f', fontsize=10)Contour plot
contourf(z); colormap(gray)contourf(Z, V, cmap=cm.gray, origin='lower', extent=(-3,3,-3,3))Filled contour plot
image(z) colormap(gray)im = imshow(Z, interpolation='bilinear', origin='lower', extent=(-3,3,-3,3))Plot image data
# imshow() and contour() as aboveImage with contours
quiver()quiver()Direction field vectors

Perspective plots of surfaces over the x-y plane

MATLAB/OctavePythonDescription
n=-2:.1:2; [x,y] = meshgrid(n,n); z=x.*exp(-x.^2-y.^2);n=arrayrange(-2,2,.1) [x,y] = meshgrid(n,n) z = x*power(math.e,-x**2-y**2)
mesh(z)``Mesh plot
surf(x,y,z) or surfl(x,y,z) % no surfl()Surface plot

Scatter (cloud) plots

MATLAB/OctavePythonDescription
plot(1:10) print -depsc2 foo.eps gset output "foo.eps" gset terminal postscript eps plot(1:10)savefig('foo.eps')PostScript
``savefig('foo.pdf')PDF
``savefig('foo.svg')SVG (vector graphics for www)
print -dpng foo.pngsavefig('foo.png')PNG (raster graphics)

Data analysis

Set membership operators

MATLAB/OctavePythonDescription
a = [ 1 2 2 5 2 ]; b = [ 2 3 4 ];a = array([1,2,2,5,2]) b = array([2,3,4]) a = set([1,2,2,5,2]) b = set([2,3,4])Create sets
unique(a)unique1d(a) unique(a) set(a)Set unique
union(a,b)union1d(a,b) a.union(b)Set union
intersect(a,b)intersect1d(a) a.intersection(b)Set intersection
setdiff(a,b)setdiff1d(a,b) a.difference(b)Set difference
setxor(a,b)setxor1d(a,b) a.symmetric_difference(b)Set exclusion
ismember(2,a)2 in a setmember1d(2,a) contains(a,2)True for set member

Statistics

MATLAB/OctavePythonDescription
mean(a)a.mean(axis=0) mean(a [,axis=0])Average
median(a)median(a) or median(a [,axis=0])Median
std(a)a.std(axis=0) or std(a [,axis=0])Standard deviation
var(a)a.var(axis=0) or var(a)Variance
corr(x,y)correlate(x,y) or corrcoef(x,y)Correlation coefficient
cov(x,y)cov(x,y)Covariance

Interpolation and regression

MATLAB/OctavePythonDescription
diff(a)diff(x, n=1, axis=0)Discrete difference function and approximate derivative
``Solve differential equations

Fourier analysis

MATLAB/OctavePythonDescription
.m.pyScript file extension
% % or ##Comment symbol (rest of line)
% must be in MATLABPATH % must be in LOADPATHfrom pylab import *Import library functions
string='a=234'; eval(string)string="a=234" eval(string)Eval

Loops

MATLAB/OctavePythonDescription
for i=1:5; disp(i); endfor i in range(1,6): print(i)for-statement
for i=1:5 disp(i) disp(i*2) endfor i in range(1,6): print(i) print(i*2)Multiline for statements

Conditionals

MATLAB/OctavePythonDescription
ansMost recent evaluated expression
whos or whoList variables loaded into memory
clear x or clear [all]Clear variable $x$ from memory
disp(a)print aPrint

Working directory and OS

MATLAB/OctavePythonDescription
dir or lsos.listdir(".")List files in directory
whatgrep.grep("*.py")List script files in directory
pwdos.getcwd()Displays the current working directory
cd fooos.chdir('foo')Change working directory
!notepad system("notepad")os.system('notepad') os.popen('notepad')Invoke a System Command
------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道