Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save the contents of MATLAB's Command Window to a file?

I want to save everything in the "Command Window" to a file automatically. Is there a way to do it?

like image 630
Mohammad Moghimi Avatar asked Apr 29 '11 14:04

Mohammad Moghimi


People also ask

How do you save a Command Window and workspace in MATLAB?

To save variables to a MATLAB script, click the Save Workspace button or select the Save As option, and in the Save As window, set the Save as type option to MATLAB Script. Variables that cannot be saved to a script are saved to a MAT-file with the same name as that of the script.


1 Answers

You have a few options available for saving content from the Command Window:

  • You can do this using the DIARY command. You could even automate this so that it always records what you do by modifying your startup.m file to turn on text logging:

    diary('myTextLog.txt');  %# Text will be appended if this file already exists
    

    And then modify your finish.m file to turn logging off:

    diary('off');
    

    This will automatically store the entire text content of the Command Window for every MATLAB session, which could grow into a rather large text file.

  • Another option besides using the DIARY command and modifying your startup.m and finish.m files is to start MATLAB using the -logfile option:

    matlab -logfile "myTextLog.txt"
    

    Although I'm not sure if this will overwrite the text file or append to it each time you start MATLAB.

  • If you're just wanting to save the output from evaluating one or more expressions, you can use the EVALC function to evaluate a string containing your expression and capture the output that would normally go to the command window in a character array. You can then print this character array to a file using FPRINTF.

  • Finally, if you're not interested in saving the displayed output from commands you type, but you instead just want to store the commands themselves, then the Command History is what you want. MATLAB automatically stores a history.m file with a maximum size of 200,000 bytes, deleting the oldest entries when newer ones are added.

like image 144
gnovice Avatar answered Oct 15 '22 21:10

gnovice