On Tue, Jun 17, 2008 at 1:10 PM, goric <[EMAIL PROTECTED]> wrote:
>
>> <[EMAIL PROTECTED]> wrote:
>>
>> > On Jun 17, 8:29 am, goric <[EMAIL PROTECTED]> wrote:
>> >> Hello,
>> >> I need some methods that permit to add a line or a column in a matrix
>> >> in that way:
>>
>> >> M = Matrix(3,3,lambda i,j: i+j)
>> >> M
>> >> ⎡0 1 2⎤
>> >> ⎢1 2 3⎥
>> >> ⎣2 3 4⎦
>> >> V = Matrix(3,1,lambda i,j: 3+i+j)
>> >> V
>> >> ⎡3⎤
>> >> ⎢4⎥
>> >> ⎣5⎦
>> >> M.append_col(V)
>> >> M
>> >> ⎡0 1 2 3⎤
>> >> ⎢1 2 3 4⎥
>> >> ⎣2 3 4 5⎦
>> >> VL = [3,4,5,6]
>> >> M.append_line(VL)
>> >> M
>> >> ⎡0 1 2 3⎤
>> >> ⎢1 2 3 4⎥
>> >> ⎢2 3 4 5⎥
>> >> ⎣3 4 5 6⎦
>>
>> >> Can I implement them? The names I gave to them are good or do you
>> >> suggest any other name? I'll wait your opinion to start working.
>>
>> > I'd suggest using names:
>> >  insert_row, insert_column, append_row, append_column
>>
>> > where insert_row(index, row) etc.
>>
>> > Another option is to have something similar to numpy
>>
>> >  insert(index, seq, axis=None)
>> >  append(seq, axis=None)
>>
>> > See numpy.insert and numpy.append functions for more info.
>>
>> Thta's ok with me too. We can even have both.
>>
>> Ondrej
>
> Considering numpy API I think that numpy.vstack() numpy.hstack() are
> more similar to append_row, append_column because numpy.append does
> ravel the array if you call as:
>
> append( M, V )
>
> But implementing also insert and append that works like numpy is a
> good idea.
>
> I think the best way is to implement with the maximum API
> compatibility with numpy in that way:
>
> M = Matrix(3,3,lambda i,j: i+j)
> M
> ⎡0 1 2⎤
> ⎢1 2 3⎥
> ⎣2 3 4⎦
> V = Matrix(3,1,lambda i,j: 3+i+j)
> V
> ⎡3⎤
> ⎢4⎥
> ⎣5⎦
> hstack(M,V)
> ⎡0 1 2 3⎤
> ⎢1 2 3 4⎥
> ⎣2 3 4 5⎦
> M.append_column(V)
> M
> ⎡0 1 2 3⎤
> ⎢1 2 3 4⎥
> ⎣2 3 4 5⎦
> VL = [3,4,5,6]
> vstack(VL)
> ⎡0 1 2 3⎤
> ⎢1 2 3 4⎥
> ⎢2 3 4 5⎥
> ⎣3 4 5 6⎦
> M.append_row(VL)
> M
> ⎡0 1 2 3⎤
> ⎢1 2 3 4⎥
> ⎢2 3 4 5⎥
> ⎣3 4 5 6⎦
>
> What do you think?

Looks good to me.

Ondrej

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to