Sure, if you want to be reckless you can put this into your .juliarc.jl:

import Base: squeeze
squeeze(A::AbstractArray) = squeeze(A, filter(i->size(A,i)==1, 1:ndims(A)))

You can of course choose to submit the second line as a pull request, and see 
what folks think.

--Tim

On Wednesday, September 03, 2014 11:35:48 AM David Smith wrote:
> Ok, so you can continue using the old squeeze.  Us reckless types can use
> the aggressive one. ;-)
> 
> I don't see why it shouldn't be available.  Is there a fear that new users
> will run into subtle errors and hate Julia because of it?
> 
> What I hate is typing squeeze(x, 1) all the time.
> 
> On Wednesday, September 3, 2014 1:21:56 PM UTC-5, Tim Holy wrote:
> > On Wednesday, September 03, 2014 10:57:16 AM David Smith wrote:
> > > Also, why don't we have a squeeze(A::AbstractArray{T,N}) method that
> > > eliminates all singleton dimensions?  If we had that, indexing returning
> > > singleton dimensions wouldn't be as bad.  Currently, having to write
> > > squeeze(a[k,:,:],1) is terrible.  That is something where Matlab wins.
> > 
> > It wins, until the day that the a that gets returned by some other
> > algorithm
> > happens, on one iteration out of 10^4, to have size (K, M, N) with M =1.
> > At
> > that point, Matlab's squeeze delivers you an Nx1 array rather than the 1xN
> > array you wished you had.
> > 
> > I can't tell you how many times I got bit by that, until I stopped using
> > squeeze altogether and just used reshape(). Which is more tedious yet than
> > Julia's squeeze().
> > 
> > --Tim

Reply via email to