flat

flatten a matrix, i.e. make it a vector

You are now following this Submission

Warning: this is obviously a pretty dumb function, that will be useful when you need to often vectorize indexed matrices.

In matlab you usually vectorize a multidimensional matrix by indexing it with (:), e.g. x(:).

However, if you are trying to vectorize only selected columns or lines in the matrix this is not possible, meaning you can't do something like

hist (x(index,:))
sum (x(index,:))

The usual workaround implies copying the needed elements as a new matrix, as in

x2 = x(index,:);
hist (x2(:));
sum (x2(:));

which crowds your namespace with useless variables and makes your code more complex. Using the (allegedly dumb, but convenient) flat() function, this becomes

hist(flat(x(index,:)));
sum(flat(x(index,:)));

which is both easy to understand, clean and doesn't store the intermediate values.

This was inspired by the numpy x.flat() function.

Cite As

Vincent (2026). flat (https://in.mathworks.com/matlabcentral/fileexchange/17257-flat), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0

insert a warning in the description