Display variable that user requests
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kelsey
el 22 de Sept. de 2021
Comentada: Kelsey
el 22 de Sept. de 2021
I have a program that controls a robot and various systems that runs for hours or days on end. I want a way for the user to select a variable to display to screen through input. It would look something like this...
% Existing variables in code would look something like this
var1 = 10;
var2 = 3;
% The program asks user if they want to display a variable
x = input('Enter variable value to display: ','s')
%User inputs 'var2'
disp(x)
%Matlab displays the value of var2, which is 3
Right now, of course, it would display the string that was input, not the variable that the user selected with their string input. I feel like I want a function like str2var instead of str2num...
I could do a big switch statement for the most common variables that the user might want to select, but I was hoping there was a better way to do this. Ive tried searching the web, but couldn't come up with anything. Any advice would be very appreciated.
0 comentarios
Respuesta aceptada
Walter Roberson
el 22 de Sept. de 2021
Perhaps just give them the Workspace Browser? https://www.mathworks.com/help/matlab/ref/workspace.html
You can find the names of all variables in the workspace using who or whos .
%set up for demo
aafdadf = 34213;
JO324adf = 3248.;
k_df9M = -121324;
varnames = setdiff( who(), 'varnames');
chosenvar = varnames{randi(numel(varnames))}
H = str2func("@()evalin('caller', 'disp(" + chosenvar + ")');")
H()
3 comentarios
Walter Roberson
el 22 de Sept. de 2021
If the user can be trusted to not be mailicious
A) They can't be trusted not to be malicious;
B) typing mistakes
Give them a menu to select from -- a drop-down box. And you can openvar() by name
x = 'var1';
openvar(x)
Más respuestas (0)
Ver también
Categorías
Más información sobre Startup and Shutdown 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!