In MATLAB, when is it optimal to use bsxfun?

There are three reasons I use bsxfun (documentation, blog link) bsxfun is faster than repmat (see below) bsxfun requires less typing Using bsxfun, like using accumarray, makes me feel good about my understanding of MATLAB. bsxfun will replicate the input arrays along their “singleton dimensions”, i.e., the dimensions along which the size of the array … Read more

What is the Python equivalent of Matlab’s tic and toc functions?

Apart from timeit which ThiefMaster mentioned, a simple way to do it is just (after importing time): t = time.time() # do stuff elapsed = time.time() – t I have a helper class I like to use: class Timer(object): def __init__(self, name=None): self.name = name def __enter__(self): self.tstart = time.time() def __exit__(self, type, value, traceback): … Read more

Using i and j as variables in MATLAB

Because i and j are both functions denoting the imaginary unit: http://www.mathworks.co.uk/help/matlab/ref/i.html http://www.mathworks.co.uk/help/matlab/ref/j.html So a variable called i or j will override them, potentially silently breaking code that does complex maths. Possible solutions include using ii and jj as loop variables instead, or using 1i whenever i is required to represent the imaginary unit.

A tool to convert MATLAB code to Python [closed]

There are several tools for converting Matlab to Python code. The only one that’s seen recent activity (last commit from June 2018) is Small Matlab to Python compiler (also developed here: SMOP@chiselapp). Other options include: LiberMate: translate from Matlab to Python and SciPy (Requires Python 2, last update 4 years ago). OMPC: Matlab to Python … Read more

Is there a foreach in MATLAB? If so, how does it behave if the underlying data changes?

MATLAB’s FOR loop is static in nature; you cannot modify the loop variable between iterations, unlike the for(initialization;condition;increment) loop structure in other languages. This means that the following code always prints 1, 2, 3, 4, 5 regardless of the value of B. A = 1:5; for i = A A = B; disp(i); end If … Read more

Why is MATLAB so fast in matrix multiplication?

This kind of question is recurring and should be answered more clearly than “MATLAB uses highly optimized libraries” or “MATLAB uses the MKL” for once on Stack Overflow. History: Matrix multiplication (together with Matrix-vector, vector-vector multiplication and many of the matrix decompositions) is (are) the most important problems in linear algebra. Engineers have been solving … Read more

Is it possible to define more than one function per file in MATLAB, and access them from outside that file?

The first function in an m-file (i.e. the main function), is invoked when that m-file is called. It is not required that the main function have the same name as the m-file, but for clarity it should. When the function and file name differ, the file name must be used to call the main function. … Read more