Squish

Squish removes ALL singleton dimensions.
1.4K Downloads
Updated 27 Feb 2010

View License

Squish(x) will remove all singleton dimensions in x, including conversion of row vectors to column vectors.

Since singleton dimensions can confuse many operations, this function removes absolutely ALL singleton dimensions. SQUEEZE though similar, does not operate on 2D arrays which include row vectors. Thus the expected result may not always occur with SQUEEZE.

Note: This same operation can be performed with shiftdim(squeeze(x)), but squish has been timed to be faster.

For example compare the results of the following for any positive or negative n:
size(squeeze(shiftdim([1:3]',n)))
size(squish(shiftdim([1:3]',n)))

Cite As

Mirko Hrovat (2024). Squish (https://www.mathworks.com/matlabcentral/fileexchange/11945-squish), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Matrix Indexing 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.1.0.0

Modified as per Jan Simon's suggestion. It did result in a very very slight speed improvement.

1.0.0.0

Function has been modified to use logical indexing instead of "find".