Maybe we should use a couple of examples. I agree that Tomas’s example is an important one to include to make people understand things.
I’d also suggest including one example that produces a higher-dimensional output than the input. This is one of the big differences between repeat and repmat. — John On Jun 17, 2014, at 6:30 AM, Tomas Lycken <[email protected]> wrote: > I’d like to add the following example too, of using both inner and outer, to > show off the flexibility of repeat: > > julia> repeat(A, inner=[1,2], outer=[2,1]) > 4x4 Array{Int64,2}: > 1 1 2 2 > 3 3 4 4 > 1 1 2 2 > 3 3 4 4 > Until I had tried that in the REPL myself, I didn’t really trust that I > actually understood what keywords really meant. Now I think I do. > // T > > > On Tuesday, June 17, 2014 2:36:39 PM UTC+2, Bruno Rodrigues wrote: > > > > For outer, I think that it would be clearer to say that it repeats (or > clones?) the whole array along the specified dimensions. For inner, I think > it's ok. > > Looking at the tests for repeat, I think we could use this as an example: > > As an illustrative example, let's consider array A: > A = [1 2;3 4] > > 2x2 Array{Int64,2}: > 1 2 > 3 4 > > If you want to repeat array A along the second dimension: > > repeat(A,inner=[1,1],outer=[1,2]) > 2x4 Array{Int64,2}: > 1 2 1 2 > 3 4 3 4 > > You can also repeat the columns first: > > repeat(A,inner=[1,2],outer=[1,1]) > 2x4 Array{Int64,2}: > 1 1 2 2 > 3 3 4 4 > > > > You can also create a new array that repeats A along a third dimension: > > repeat(A,inner=[1,1],outer=[1,1,2]) > 2x2x2 Array{Int64,3}: > [:, :, 1] = > 1 2 > 3 4 > > [:, :, 2] = > 1 2 > 3 4 > > > Is there a limit on how a docstring can be? Could we add more examples? > > On Thursday, June 12, 2014 4:59:14 PM UTC+2, John Myles White wrote: > Rewriting the documentation for repeat would be great. I’m the guilty party > for that piece of documentation and agree that it’s not very good. Rewriting > it from scratch is probably a good idea. > > I’m not sure I think `tile` is much better than `outer`. Maybe we should use > something like `perelement` and `perslice` as the keywords? If we revise the > keywords, we should also find terms to describe one additional piece of > functionality I’d like to add to repeat: the ability to repeat specific > elements a distinct number of times. That’s the main thing that repeat is > missing that you’d get from R’s rep function. > > If you’re looking for good examples for the documentation, there are a bunch > of tests for `repeat` you could use as inspiration: > https://github.com/JuliaLang/julia/blob/b320b66db8fb97cc3b96fe4089b7b15528ab346c/test/arrayops.jl#L302 > > — John > > On Jun 12, 2014, at 6:17 AM, Patrick O'Leary <[email protected]> wrote: > >> On Thursday, June 12, 2014 7:57:03 AM UTC-5, Bruno Rodrigues wrote: >> repeat() is much more useful that Matlab's repmat(), but the docstring is >> unclear, at least for me. Unfortunately, I don't have, right now, any >> proposals to correct it. Could maybe an example be added to the docstring? >> Maybe it could be clearer this way. >> >> I think an example would help make this immediately obvious. I also wonder >> if the keyword arguments could be better--I don't have a good alternative >> for "inner", but "tile" seems like a good alternative to "outer". That may >> at least be useful in a rework of the doc. >> >> Note that you don't have to supply both keyword arguments, only one, so if >> you're not using the feature of "inner" you can simply omit it. > > > >
