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. 
> 
> 
> 
> ​

Reply via email to