Yes, for issues such as this, if it is a bug or a regression, or documentation, it helps to file an issue to make sure it gets fixed.
-viral On Tuesday, April 29, 2014 12:53:45 AM UTC+5:30, paul analyst wrote: > > to make new bug? > Paul > > W dniu poniedziałek, 28 kwietnia 2014 07:26:51 UTC+2 użytkownik Viral Shah > napisał: >> >> I filed https://github.com/JuliaLang/julia/issues/6676 >> >> -viral >> >> On Monday, April 28, 2014 4:04:33 AM UTC+5:30, Simon Kornblith wrote: >>> >>> If diag is passed a vector rather than a matrix, we already give a good >>> error message: >>> >>> julia> diag([1, 2, 3, 4]) >>> ERROR: use diagm instead of diag to construct a diagonal matrix >>> in diag at linalg/generic.jl:49 >>> >>> It wouldn't hurt to have this in the docs, though. >>> >>> On Sunday, April 27, 2014 4:07:52 PM UTC-4, Andreas Noack Jensen wrote: >>>> >>>> I agree. It would probably avoid some confusion if the documentation >>>> was a little longer and pointed to diagm and Diagonal. >>>> >>>> >>>> 2014-04-27 22:02 GMT+02:00 Ivar Nesje <[email protected]>: >>>> >>>>> This difference should be explained in the documentation for diag >>>>> >>>>> The current documentation is kind of short: >>>>> >>>>> Base.diag(M[, k]) >>>>> The "k"-th diagonal of a matrix, as a vector. >>>>> >>>>> Ivar >>>>> >>>>> kl. 21:54:43 UTC+2 søndag 27. april 2014 skrev John Code følgende: >>>>> >>>>>> Thank you. >>>>>> >>>>>> On Sunday, April 27, 2014 11:49:12 PM UTC+4, Andreas Noack Jensen >>>>>> wrote: >>>>>>> >>>>>>> Hi John >>>>>>> >>>>>>> In julia, the function diag extract the diagonal of a matrix and if >>>>>>> the matrix is rectangular, it extracts the diagonal of the largest >>>>>>> square >>>>>>> sub matrix. Note that in julia, [1 2 3 4] is not vector but a matrix. >>>>>>> To >>>>>>> construct a matrix from a vector you can either use the function diagm, >>>>>>> which does what you expected diag did, >>>>>>> >>>>>>> julia> diagm([1,2,3,4]) >>>>>>> 4x4 Array{Int64,2}: >>>>>>> 1 0 0 0 >>>>>>> 0 2 0 0 >>>>>>> 0 0 3 0 >>>>>>> 0 0 0 4 >>>>>>> >>>>>>> but it is often better to use Diagonal, which creates a special >>>>>>> Diagonal matrix, >>>>>>> >>>>>>> julia> Diagonal([1,2,3,4]) >>>>>>> >>>>>>> 4x4 Diagonal{Int64}: >>>>>>> 1 0 0 0 >>>>>>> 0 2 0 0 >>>>>>> 0 0 3 0 >>>>>>> 0 0 0 4 >>>>>>> >>>>>>> >>>>>>> 2014-04-27 21:40 GMT+02:00 John Code <[email protected]>: >>>>>>> > >>>>>>> > Hi all, >>>>>>> > I would like to ask why there is a difference between Octave diag >>>>>>> function >>>>>>> > and the function that julia provide. For example, in the following >>>>>>> Octave session I get: >>>>>>> > >>>>>>> > ============================ >>>>>>> > octave:1> v = [1 2 3 4] >>>>>>> > v = >>>>>>> > >>>>>>> > 1 2 3 4 >>>>>>> > >>>>>>> > octave:2> a = diag(v) >>>>>>> > a = >>>>>>> > >>>>>>> > Diagonal Matrix >>>>>>> > >>>>>>> > 1 0 0 0 >>>>>>> > 0 2 0 0 >>>>>>> > 0 0 3 0 >>>>>>> > 0 0 0 4 >>>>>>> > ============================= >>>>>>> > >>>>>>> > But in Julia I get: >>>>>>> > >>>>>>> > ============================= >>>>>>> > julia> v = [1 2 3 4] >>>>>>> > 1x4 Array{Int64,2}: >>>>>>> > 1 2 3 4 >>>>>>> > >>>>>>> > julia> a = diag(v) >>>>>>> > 1-element Array{Int64,1}: >>>>>>> > 1 >>>>>>> > >>>>>>> > >>>>>>> > ============================= >>>>>>> > >>>>>>> > >>>>>>> > Why is this the case and how to get a similar effect of the octave >>>>>>> code. >>>>>>> > Thank you. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Med venlig hilsen >>>>>>> >>>>>>> Andreas Noack Jensen >>>>>>> >>>>>> >>>> >>>> >>>> -- >>>> Med venlig hilsen >>>> >>>> Andreas Noack Jensen >>>> >>>
