How to refer to workspace variable in Matlab toolbar shortcut?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Wojciech Krauze
el 23 de Nov. de 2015
Comentada: Wojciech Krauze
el 30 de Nov. de 2015
I would like to create a new toolbar shortcut that would perform some simple operation on a variable marked with a mouse in a workspace. I already have a shortcut for imagesc taken from available Matlab shortcuts. When I click on a variable and then click on the imagesc shortcut, the variable is displayed. This shortcut knows which variable to display. So my question is: what argument should I give in a script for new shortcut to pick the variable that is "clicked" in a workspace.
0 comentarios
Respuesta aceptada
Jan
el 29 de Nov. de 2015
jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
jWSBrowser = jDesktop.getClient('Workspace');
WSTable = jWSBrowser.getComponent(0).getComponent(0).getComponent(0);
selectedRows = WSTable.getSelectedRows;
selectedVars = cell(1, numel(selectedRows));
for k = 1:numel(selectedRows)
selectedVars{k} = WSTable.getValueAt(selectedRows(k),0);
end
Más respuestas (1)
Jan
el 23 de Nov. de 2015
Where is the variables marked? In the command window or the editor?
activeEditor = matlab.desktop.editor.getActive;
currentSelection = activeEditor.SelectedText;
Yair suggested this for the command window:
%# find the text area in the command window
jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
try
cmdWin = jDesktop.getClient('Command Window');
jTextArea = cmdWin.getComponent(0).getViewport.getComponent(0);
catch
commandwindow;
jTextArea = jDesktop.getMainFrame.getFocusOwner;
end
%# read the current selection
jTxt = jTextArea.getSelectedText;
%# turn into Matlab text
currentSelection = jTxt.toCharArray'; %'
%# display
disp(currentSelection)
2 comentarios
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!