Edit a saved MATLAB figure using command line - matlab

Is there a way to reopen a saved MATLAB figure type file and edit it using commands in the command line, like one can do by generating a figure from the command line and make edits to it?
Thank you!

you can use:
openfig('MySavedPlot.fig','visible')
https://www.mathworks.com/help/matlab/ref/openfig.html

Related

Copy Command Prompt's content to clipboard

I'm looking for a solution to copy the command prompt's current content to the clipboard. I know something similar is possible by redirecting the output or using clip but I'm looking for something else. I'm looking for a command which copies the entire content of the command prompt window to the clipboard/a file anytime when it's called(not just the output of one command). It's quite easy to do manually by selecting everything and press ctrl-c but I need a command for this.
Basically it should achieve the same as doskey /history > somefile.txt but saving the output of the commands too.
Is something like this possible?
you can use simple java program , to get the entire content of the command prompt and out it into a String variable or write it to txt file

Is there a way to edit last Octave command and /or script typed in Octave CLI

typing and executing a single line command in octave cli is simple.
for example a=1.
If one wants to edit this command and execute it again it is possible by navigating the history with the up/down keys.
But when executing a multi line command-script, one can still navigate to a single line and edit it, but how to execute the all script again, without going line by line in the history and "enter" the line?
for example:
for i=1:6
a(i) = i;
end
Is there a way to open the all script in an editor, edit, and re-execute it?
Yes there is, via the history command.
E.g. history -q 3 will display the last 3 commands -- the -q switch means do not prepend line numbers, such that the output is copy-pasteable.
You can also use the -w switch to redirect the output to a file, which you could then modify in your editor and call as a script, as you suggest.
If you're using the GUI, you can also use the history pane to highlight the lines you're interested in (in the order that you want them!), and paste directly into the editor window.

Copy history of commands in matlab

I know how to save variables in matlab by this command
save
and load it by this command
load
but the question how to copy history of commands in txt file
save won't save commands, it saves the variables in your current workspace.
MATLAB history is saved in a History.xml file, the directory can be viewed by prefdir command.
For plain .txt command, just press up-arrow, and select-all from the history small list, copy it to whatever place you want. You may find this documentation helpful.
Just in case you do not have access to the admin folders or don't have required previleges,here's a simple method that worked for me,accidentally.
Go to the command prompt
and press CNTRL+A (Select All) and then CNTRL+C(Copy)
You will be prompted that :
It is not possible to show 13xx commands on the screen,
Go ahead anyway.
Then simply CNTRL + V (Paste) everything in any text editor.
Voila!
Hope it helps,
Anuj

Using vim as default editor for matlab

I want to use gvim as the standard editor for Matlab. It used to work on Linux but now I am forced to use windows and I can't seem to figure out how to set the editor such that files are opened in gvim in a new tab.
In the preferences there is a field which allows to pass a command that points to the prefered text editor. That works, but things fail when I try to give additional options, in my case that would be "--remote-tab-silent" to tell gvim to open the file in a running instance in a new tab. More specifically, the following line in the matlab preferences works:
C:\pathtovim\gvim.exe
while this one fails
C:\pathtovim\gvim.exe --remote-tab-silent
A command line opens with the following error message (my own translation from German):
The command ""C:\pathtovim\gvim.exe --remote-tab-silent"" is either spelled incorrectly or could not be found.
My guess is that it has something to do with the additional quotes, I have no idea why the command is issued with quotes, even though in the field I put it without. The follwing commands work when typed into the command line directly:
"C:\pathtovim\gvim.exe"
C:\pathtovim\gvim.exe --remote-tab-silent file.m
and this one fails:
"C:\pathtovim\gvim.exe --remote-tab-silent file.m"
I'd really appreciate any help! Thanks!
I can't find a good way to hack around it through the MATLAB settings; it looks like MATLAB is stupidly expecting the text editor to take only file names as arguments.
I think your best option, is to create a .bat script that simply passes any arguments it receives on to Vim, inserting the --remote-tab-silent.
I.e. create a .bat file with these contents:
"C:\pathtovim\gvim.exe" --remote-tab-silent %*
Then set up your MATLAB preferences to invoke the .bat file rather than Vim.

MATLAB Command History: how to save back up of existing history

According to this link:
How to save contents of MATLAB's command windows to in a file?
I can back up my commends going forward using diary which is great:
However I would also like to back up my existing command history, I assume the command history is stored in a text file somewhere correct?
If so can I just copy this?
Type prefdir on Matlab and it will give you a folder.
Your command history is in that folder, in a file called history.m.
Have a look at the "Save Entire Command History" submission, which will let you save all your command history, not just the last 20k allowed by MATLAB.