Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to generate ``nice'' algebra output from command-line mathematica?

77 views
Skip to first unread message

Jesse Perla

unread,
Apr 4, 2012, 4:31:31 AM4/4/12
to
I have a .m file that I am running mathematica on the command line
(using a linux cluster, qsub, and piping the output to a file). The
generated algebra gets extremely complicated. I would love to be able
to see the output formatted in a familiar mathematica form (e.g. with
the lambda symbol instead of \[Lambda], integrals, etc.).

Are there any tricks to generate a mathematica workbook or something
equivalent that I can read after my job is complete? If necessary, I
don't mind choosing some of the algebraic expressions and saving to a
binary file at the end rather than having the whole session stored. I
don't need to resulting file to be an interactive workbook, so if
there is some way to generate Latex or some static output, then I
would be happy with that approach.

Thanks,
Jesse

djmpark

unread,
Apr 5, 2012, 5:45:54 AM4/5/12
to
Jesse,

Perhaps there is a good reason for what you are trying to do. Nevertheless
I'm wondering why you don't use the regular Mathematica FrontEnd notebook
interface? Without that you are introducing an extra level of "system
programming" problems on top of what might already be tricky problems.

If you wanted to input in one window and output in another window, you could
do that through Notebook programming.

Otherwise, manipulating expressions to a "nice" form is something of an art
in itself - even within the regular notebook interface.


David Park
djm...@comcast.net
http://home.comcast.net/~djmpark/index.html

Jesse Perla

unread,
Apr 5, 2012, 5:51:32 AM4/5/12
to
On Wednesday, April 4, 2012 4:31:31 AM UTC-4, Jesse Perla wrote:

> Are there any tricks to generate a mathematica workbook or something
> equivalent that I can read after my job is complete? If necessary, I
> don't mind choosing some of the algebraic expressions and saving to a
> binary file at the end rather than having the whole session stored. I

It appears that I can use the command to dump all globally scoped variables:
DumpSave["test_save.mx", "Global`"]

and then load it up after execution with:
<< test_save.mx;

Is this the best way to do it?

David Bailey

unread,
Apr 6, 2012, 6:05:16 AM4/6/12
to
It sounds as though you are not using the notebook interface - i.e.
starting Math rather than Mathematica. This will open in a window,
rather than at the Linux command line, but you will be surprised at how
beautiful the output is!

BTW, you can also open .m files in the notebook interface (also known as
the FrontEnd) and they will edit and execute nicely.

I assume you are using the latest Mathematica - 8.0 or maybe 7.0, if you
are using anything less than 3.0, I'd definitely suggest that you upgrade!


To answer your other question, I would not use DumpSave routinely to
save your work. There are far better ways - such as notebooks (.nb
suffix) that can store both input and output in a readable form.

David Bailey
http://www.dbaileyconsultancy.co.uk

Jesse Perla

unread,
Apr 7, 2012, 5:55:32 AM4/7/12
to
On Friday, April 6, 2012 6:05:16 AM UTC-4, David Bailey wrote:
> It sounds as though you are not using the notebook interface - i.e.
> starting Math rather than Mathematica.

I am in fact using: math < myfile.m

Alas, I don't have any other options as this is running as a job on a cluster.

David Bailey

unread,
Apr 8, 2012, 4:16:11 AM4/8/12
to
Assuming you have a Mathematica available locally to read the output,
I'd use Save (not DumpSave, which produces a version-dependant format)
to save the output and then read it locally.

David Bailey
http://www.dbaileyconsultancy.co.uk


A Retey

unread,
Apr 9, 2012, 5:32:48 AM4/9/12
to
Hi,

>> Are there any tricks to generate a mathematica workbook or something
>> equivalent that I can read after my job is complete? If necessary, I
>> don't mind choosing some of the algebraic expressions and saving to a
>> binary file at the end rather than having the whole session stored. I
>
> It appears that I can use the command to dump all globally scoped variables:
> DumpSave["test_save.mx", "Global`"]
>
> and then load it up after execution with:
> << test_save.mx;
>
> Is this the best way to do it?
>

that really depends a lot on how you will use the result. You could save
your expressions to package files as well (see the documentation for
Save and Put), which would be somewhat more portable among different
computers and Mathematica-versions.

You could also directly write Mathematica notebooks containing formatted
expressions from the kernel, e.g. like this:

expr=a^2+b^2;

Put[
Notebook[{Cell[BoxData[ToBoxes[expr]],"Output"]}],
ToFileName[{$HomeDirectory},"result.nb"]
]

It's not too difficult to create more fancy notebooks with sections and
multiple cells containing different expressions. See
tutorial/NotebooksAsMathematicaExpressions if you think this approach is
what you need. Honestly, I think saving the expressions to .mx or
package files will be more useful for most use cases, since it's easier
to load them for any post processing you might want to do with them.

hth,

albert

0 new messages