MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

AW: Re: Transpose matrix does not work when MatrixForm is used, why?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg45294] AW: [mg45288] Re: Transpose matrix does not work when MatrixForm is used, why?
  • From: Klamser at t-online.de
  • Date: Mon, 29 Dec 2003 00:22:03 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

every modern computer program solves two problems:

1. The main problem (Mathematica solve mathematical problems)

2. Tell the user something about the found solution: The output!

Ancient computer program did not! They only solved the problem, the output
option was forgotten (ALGOL in the early sixties... ;-) => (because there
was not enough memory...).

The MatrixForm primitive is not a mathematical problem, it is one of the
second kind. Output has something to do with tradition, not so deep with the
problem itself...

Therefore the output primitives should not be locked with the problem
itself.

Some people want to have the same format each Mathematica session. Therefore
you find by some experts

http://www.verbeia.com/mathematica/tips/Tricks.html

or

http://www.verbeia.com/mathematica/tips/HTMLLinks/Tricks_174.html

$PrePrint=Which[MatrixQ[#],MatrixForm[#],NumberQ[#],#,True,Short[#,50]]&

Putting this into your init.m file in the kernel directory, you will have
never again to type //MatrixForm and you never have again to position the
brackets correct:

(m = { {1, 2, 3}, {4, 5, 6} }) // MatrixForm;

Regards

Peter


-----Ursprüngliche Nachricht-----
Von: Bobby R. Treat [mailto:drbob at bigfoot.com]
Gesendet: Sonntag, 28. Dezember 2003 11:11
An: mathgroup at smc.vnet.net
Betreff: [mg45288] Re: Transpose matrix does not work when MatrixForm is
used, why?


THANKS for emphasizing that MatrixForm and List are two different
heads. That's very, very true -- but rather obvious and not
particularly helpful.

The issue is that the MatrixForm "wrapper" affects evaluation,
contrary to the description in Help. The question is what to do about
it.

Thanks to Andrzej Kozlowski, we have a short answer that seems to
work.

Bobby

Klamser at t-online.de wrote in message news:<bsjlej$24e$1 at smc.vnet.net>...
> Hi,
>
> why has Santa Claus a red cape on?
>
> A deer is not a dog is not a dog.
>
> A MatrixForm Object is not a Matrix.
>
> m = { {1, 2, 3}, {4, 5, 6} } // MatrixForm;
> ??m -> m = MatrixForm[{{1, 2, 3}, {4, 5, 6}}]
>
> Therefore m[[0]] -> MatrixForm
>
> But
>
> (m = { {1, 2, 3}, {4, 5, 6} }) // MatrixForm;
> ??m -> m = {{1, 2, 3}, {4, 5, 6}}
>
> Therefore m[[0]] -> List
>
> Therefore again:
>
> A MatrixForm Object is not a Matrix.
>
> Regards
>
> Peter Klamser
>
>
> -----Ursprüngliche Nachricht-----
> Von: steve_H [mailto:nma124 at hotmail.com]
> Gesendet: Mittwoch, 24. Dezember 2003 23:42
> An: mathgroup at smc.vnet.net
> Betreff:  Re: Transpose matrix does not work when MatrixForm is
> used, why?
>
>
> Dr Bob <drbob at bigfoot.com> wrote in message
> news:<bsbmsb$lr1$1 at smc.vnet.net>...
>
> > That may be easier... if we are willing to constantly pay attention to
> > whether the target of Transpose is "wrapped" in MatrixForm or not.
> > (Transpose/@m if it's wrapped, Transpose@m if not.)
> >
> > But if we want Help's claim that evaluation is not affected to be true
(it
> > currently is NOT), then we have to redefine Transpose, Inverse, etc. as
in
> > my example.
> >
> > Only then would MatrixForm act properly as a wrapper, as intended.
> >
> > Bobby
> >
>
>
> > On Tue, 23 Dec 2003 18:38:10 +0900, Andrzej Kozlowski
<akoz at mimuw.edu.pl>
> > wrote:
> >
> > > This of course works, but presumably he would want do this for other
> > > functions, (e.g. Inverse etc), not just transpose. So it seems to me
it
> > > is easier simply to use Map:
> > >
> > > m = { {1, 2, 3}, {4, 5, 6} } // MatrixForm
> > > Transpose/@m
> > >
> > > etc.
> > >
> > > Andrzej Kozlowski
> > >
>
>
> Correct Dr Bob,
>
> But why do we have to resort to all these tricks? Why can't Mathematica
just
> accept a MatrixForm (or any other representation form) of the object
> in its functions (Transpose in this example) just as well as the
> list representation?
>
> Each Mathematica function, where needed, could start by checking if this
> 'Wrapper' as you call it exists, and converts it to a list
> representation (remove the wrapper), and do its thing on the list,
> and at the end put the 'wrapper' around the result as needed and
> return the result to the user?
>
> This way one does not have to worry which form of an object one uses,
> the representation form or the list form.
>
> i.e. representation form will be transparent to all Mathematica functions.


  • Prev by Date: Re: Politically incorrect response to Re: a bug in RealDigits? Mathematica 5.0
  • Next by Date: Re: AW: Re: Transpose matrix does not work when MatrixForm is used, why?
  • Previous by thread: AW: Re: Transpose matrix does not work when MatrixForm is used, why?
  • Next by thread: Re: AW: Re: Transpose matrix does not work when MatrixForm is used, why?