You can copy a variable from a MuPAD® notebook to a variable in the MATLAB® workspace using a MATLAB command. Similarly, you can copy a variable or symbolic expression in the MATLAB workspace to a variable in a MuPAD notebook using a MATLAB command. To do either assignment, you need to know the handle to the MuPAD notebook you want to address.
The only way to assign variables between a MuPAD notebook and the MATLAB workspace is to open the notebook using the following syntax:
nb = mupad;
You can use any variable name for the handle nb. To open an existing notebook file, use the following syntax:
nb = mupad(file_name);
Here file_name must be a full path unless the notebook is in the current folder. The handle nb is used only for communication between the MATLAB workspace and the MuPAD notebook.
To copy a symbolic variable in the MATLAB workspace to a variable in the MuPAD notebook engine with the same name, enter this command in the MATLAB Command Window:
For example, if nb is the handle to the notebook and z is the variable, enter:
There is no indication in the MuPAD notebook that variable z exists. To check that it exists, enter the command anames(All, User) in the notebook.
To assign a symbolic expression to a variable in a MuPAD notebook, enter:
at the MATLAB command line. For example, if nb is the handle to the notebook, exp(x) - sin(x) is the expression, and z is the variable, enter:
syms x setVar(nb,'z',exp(x) - sin(x))
For this type of assignment, x must be a symbolic variable in the MATLAB workspace.
Again, there is no indication in the MuPAD notebook that variable z exists. Check that it exists by entering this command in the notebook:
To copy a symbolic variable in a MuPAD notebook to a variable in the MATLAB workspace, enter in the MATLAB Command Window:
MATLABvar = getVar(notebook_handle,'variable');
For example, if nb is the handle to the notebook, z is the variable in the MuPAD notebook, and u is the variable in the MATLAB workspace, enter:
u = getVar(nb,'z')
Communication between the MATLAB workspace and the MuPAD notebook occurs in the notebook's engine. Therefore, variable z must be synchronized into the notebook's MuPAD engine before using getVar, and not merely displayed in the notebook. If you try to use getVar to copy an undefined variable z in the MuPAD engine, the resulting MATLAB variable u is empty. For details, see Evaluate MuPAD Notebooks from MATLAB.
You can also copy and paste between notebooks and the MATLAB workspace using standard editing commands. If you copy a result in a MuPAD notebook to the system clipboard, you might get the text associated with the expression, or a picture, depending on your operating system and application support.
For example, consider this MuPAD expression:
Select the output with the mouse and copy it to the clipboard:
Paste this into the MATLAB workspace. The result is text:
exp(x)/(x^2 + 1)
If you paste it into Microsoft® WordPad on a Windows® system, the result is a picture.