flat

Version 1.0.0.0 (255 Bytes) by Vincent
flatten a matrix, i.e. make it a vector
1.3K Downloads
Updated 31 Oct 2007

No License

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 (2024). flat (https://www.mathworks.com/matlabcentral/fileexchange/17257-flat), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2006b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Resizing and Reshaping Matrices in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0

insert a warning in the description