Upgrading from Matlab¶
Chris R. Smith
Here are some one-to-one translations for many popular functions in Matlab and python that should make it easier to switch from Matlab to Python
System functions¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
addpath |
sys.path.append |
Add to path |
File I/O¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
dlmread |
either read and parse or skimage.io.imread |
Read ASCII-delimited file of numeric data into matrix |
imread |
pyplot.imread |
read image file; N is number of files used |
Data Type¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
int |
numpy.int |
Convert data to signed integer |
double |
numpy.float |
Convert data to double |
real |
numpy.real |
Return the real part of a complex number |
imag |
numpy.imag |
Return the imaginary part of a complex number |
Mathematics¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
sqrt |
math.sqrt or numpy.sqrt |
Square root |
erf |
math.erf or scipy.special.erf |
Error function |
atan2 |
math.erf or numpy.atan2 |
Four-quadrant inverse tangent |
abs |
abs or numpy.abs |
Absolute value |
exp |
exp or numpy.exp |
Exponential function |
sin |
sin or numpy.sin |
Sine function |
Array Creation¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
zeros |
numpy.zeros |
Create an array of zeros |
meshgrid |
numpy.meshgrid |
Create grid of coordinates in 2 or 3 dimensions |
ndgrid |
numpy.mgrid or numpy.ogrid |
Rectangular grid in N-D space |
Advanced functions¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
permute |
numpy.transpose |
Rearrange dimensions of N-dimensional array |
angle |
numpy.angle |
Phase angles for elements in complex array |
max |
numpy.max |
Return the maximum element in an array |
min |
numpy.min |
Return the minimum element in an array |
reshape |
numpy.reshape |
Reshape array |
mean |
numpy.mean |
Take mean along specified dimension |
size |
numpy.size |
get the total number of entries in an array |
cell2mat |
numpy.vstack([numpy.hstack(cell) for cell in cells]) |
converts data structure from cell to mat; joins multiple arrays of different sizes into single array |
repmat |
numpy.tile |
Repeat copies of an array |
unwrap |
np.unwrap |
Shift the phase of an array so that there are no jumps of more than the desired angle (default pi) |
Array Indexing¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
find |
numpy.where |
Find all indices of a matrix for which a logical statement is true |
isnan |
numpy.isnan |
checks each array entry to see if it is NaN |
isinf |
numpy.isinf |
checks each array entry to see if it is Inf |
ischar |
numpy.ischar |
checks each array entry to see if it is a character |
Advanced functions¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
fft2 |
numpy.fft.fft2 |
2D fast Fourier transform |
fftshift |
numpy.fft.fftshift |
shift zero-frequency component to the center of the spectrum |
ifftshift |
numpy.fft.ifftshift |
inverse fftshift |
ifft2 |
numpy.fft.fifft2 |
inverse 2d fft |
interp2 |
scipy.interpolate.RectBivariateSpline or scipy.interpolate.interp2 |
Interpolation for 2-D gridded data in meshgrid format |
imshowpair |
skimage.measure.structural_similarity |
Compare differences between 2 images |
imregconfig |
Creates configurations to perform intensity-based image registration |
|
imregister |
Intensity-based image registration |
|
imregtform |
skimage.feature.register_translation or skimage.transform.estimate_transform |
Estimate geometric transfomation to align two images |
imwarp |
skimage.transform.warp |
Apply geometric transformation to an image |
imref2d |
Reference 2d image to xy-coordinates |
|
corr2 |
scipy.signal.correlate2d |
2d correlation coefficient |
optimset |
Create of edit optimizations options for passing to fminbnd, fminsearch, fzero, or lsqnonneg |
|
lsqcurvefit |
scipy.optimize.curve_fit |
Solve nonlinear curve-fitting problems |
fastica |
sklearn.decomposition.FastICA |
fast fixed-point algorithm for independent component analysis and projection pursuit |
kmeans |
sklearn.cluster.Kmeans |
kmeans clustering |
fsolve |
scipy.optimize.root(func, x0, method=’anderson’) |
Root finding. Scipy does not have a trust-region dogleg method that functions exactly like Matlab’s fsolve. The ‘anderson’ method reproduces the results in many cases. Other methods may need to be explored for other problems. |
Basic Plotting¶
Matlab Function |
Python Equivalent |
Description |
---|---|---|
figure |
matplotlib.pyplot.figure |
Create a new figure object |
clf |
figure.clf |
clear figure; shouldn’t be needed in Python since each figure will be a unique object |
subplot |
figure.subplots or figure.add_subplot |
1st creates a set of subplots in the figure, 2nd creates one subplot and adds it to the figure |
plot |
figure.plot or axes.plot |
Add lineplot to current figure |
title |
object.title |
Title of plot; better to define on object creation if possible |
xlabel |
axes.xlabel |
Label for the x-axis of plot |
ylabel |
axes.ylabel |
Label for the y-axis of plot |
imagesc |
pyplot.imshow or pyplot.matshow |
Scale image data to full range of colormap and display |
axis |
axes.axis |
Axis properties |
surf |
axes3d.plot_surface or axes3d.plot_trisurf |
Plot a 3d surface, need to uses mpl_toolkits.mplot3d and Axes3d; which you use depends on data format |
shading |
Set during plot creation as argument |
|
view |
axes3d.view_init |
Change the viewing angle for a 3d plot |
colormap |
plot.colormap |
Set the colormap; better to do so at plot creation if possible |
colorbar |
figure.add_colorbar(axes) |
Add colorbar to selected axes |