In Base there's mapslices, which may already do what you want.

Something like what you're proposing (but not yet with a nice "high level" API 
wrapper, since the low-level stuff is still in flux) is already here:
https://github.com/timholy/ArrayIteration.jl
That's aiming at a very general approach that should be efficient for a wide 
variety of AbstractArrays (dense, sparse, perhaps even distributed, etc). I 
bet you don't need so much generality?

Assuming you'd be happy with something that works well for just dense 
matrices, your `view(mat, :, i)` idea should work just fine. Given that 
julia-0.5 is just around the corner, my assumption is that it would be best to 
put it in a package first, and think about adding to Base later. (But I'm not 
opposed to sticking it in now, either.)

Best,
--Tim

On Monday, June 27, 2016 9:42:33 AM CDT Tom Breloff wrote:
> I find myself frequently wanting to do something like:
> 
> mat = rand(100,4)
> for c in columns(mat)
>     # c is a vector (a view maybe?)
> end
> 
> I think ideally this method would return a lazy iterator which returns a
> `view(mat, :, i)` at each step.  Does this exist already?  If not, would it
> be welcomed in Base?
> 
> -Tom


Reply via email to