Re: bug in InputForm (Mathematica 9)?
- To: mathgroup at smc.vnet.net
- Subject: [mg132503] Re: bug in InputForm (Mathematica 9)?
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Thu, 3 Apr 2014 02:16:41 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20140327085954.1A3806A26@smc.vnet.net>
Do not include the "Form" when setting the value of the symbol.
MatrixForm[a={{1,2},{3,4}}]
(1 2
3 4
)
(a={{1,2},{3,4}})//MatrixForm
(1 2
3 4
)
To automaticly apply MatrixForm
$Post=If[MatrixQ[#],MatrixForm[#],#]&;
a
(1 2
3 4
)
To clear $Post
$Post=.
Bob Hanlon
On Wed, Apr 2, 2014 at 2:36 AM, Szabolcs Horv=E1t <szhorvat at gmail.com> wrot=
e:
> note: also sent to comp.soft-sys.math.mathematica
>
> On 2014-3-28, 3:30 , Itai Seggev wrote:
> >> Put the following into a notebook cell:
> >>
> >> InputForm[1]
> >> InputForm[2]
> >> "test"
> >>
> >> Evaluate the cell. Only one of the InputForm commands produces output=
,
> and
> >> that output comes after "test".
> >>
> >> I am guessing these behaviors are not intended ...
> >>
> >> Alan Isaac
> >
> > An old and well known bug, at least to those of us who work on
> Mathematica' s
> > input/output system. :) Not as trivial to fix as you might think,
> because
> > doing InputForm[foo] in a notebook lives in this strange world which is
> half
> > command-line terminal and half notebook interface, and so wires can get
> > crossed easily.
> >
>
> Marginally related to this, I'm curious how all these *Form functions wor=
k.
>
> MatrixForm has this slightly confusing property:
>
> In[1]:= a=MatrixForm[{{1,2},{3,4}}]
> Out[1]//MatrixForm=
> (1 2
> 3 4)
>
> In[2]:= Head[a]
> Out[2]= MatrixForm
>
> In[3]:= Head[%1]
> Out[3]= List
>
> 'a' cannot be used as a matrix because it is wrapped in MatrixForm. But
> MarixForm is stripped before the expression is assgined to Out[1]. It
> is also indicated (using Out[1]//MatrixForm) that the output is shown in
> a special form.
>
> How does MatrixForm achieve this, i.e. that it gets stripped from the
> output and that it's shown in the cell label? Is there a general,
> user-accessible mechanism for this? Can I create my own "form-function"
> that behaves like this?
>
> Szabolcs
>
>