In MATLAB, I occasionally have need for the plotyy() command for making a plot of two different functions with widely varying scales.

Turns out Maxima draw has an equivalent functionality by setting the option **yaxis_secondary**:

Skip to content
# Tag: matlab

## Two y axes in Maxima 2D plots

## A pause() function for Maxima

** (function-name argument)**
**?function-name(argument)**
** pause();**
** pause(pausetime=3);**
## A Little Maxima Function to Find the Dimensions of a Matrix

A site for people who use Maxima to do Mathematics

In MATLAB, I occasionally have need for the plotyy() command for making a plot of two different functions with widely varying scales.

Turns out Maxima draw has an equivalent functionality by setting the option **yaxis_secondary**:

Advertisements

In MATLAB, **pause** interrupts execution of a loop until the user strikes a key, and **pause(<n>)** pauses for **<n>** seconds before resuming execution.

Here’s my attempt at a **pause()** function for Maxima that works in a similar way to MATLAB. It uses Maxima’s **read()** to stop everything and wait for user input, and it uses the lisp function **sleep** to stop for a fixed number of seconds.

**note that a lisp function

can be called inside Maxima as

I’m not happy that in order to resume after the pause, the user needs to enter a valid character (space or nothing results in an error) followed by CTRL-SHIFT. I hope to either figure something else out or even better hear suggestions from other Maxima users!

pause([options]):=block([tsecs], tsecs:assoc('pausetime,options,0), if tsecs=0 then read("Execution Paused...enter any character then CTRL-ENTER") else( disp(sconcat("paused for ", tsecs," seconds")), ?sleep(tsecs)), return("") );

call this either as

or, for a three second pause

****Update**** I didn’t find it it in documentation for quite a while, but there is a built-in Maxima function **matrix_size()** in the package linearalgebra that does what this little one-liner does******

I really wanted a Maxima function that works something like MATLAB size() to easily determine the number of rows and columns for a matrix In Maxima, **length(M)** gives the number of rows, and so **length(transpose(M))** gives the number of columns. I put those together in a little widget **matsize()** that returns the list [m,n] for an matrix

matsize(A):=[length(A),length(transpose(A))];

Advertisements