MATLAB Matlab user input variable name

Click For Summary
To allow users to define a variable name for the result of a subtraction operation in MATLAB, the eval function can be utilized. The user inputs the names of two vectors and a desired filename for the output variable. By using eval, the program can dynamically create a variable with the name specified by the user. However, it's important to note that while eval is powerful, it can be inefficient and should be used cautiously. This approach enables flexible variable naming based on user input.
anon0219
Messages
1
Reaction score
0
Hi,

I am writing a program where I have the user input the name of two previously created vectors, the computer subtracts them and then generates a variable in the workspace. I was wondering if there was a way to let the user pick this name. I have so far (Y and N have been previously defined as 1 and 0):

subtract_data=input('Would you like to subtract any data sets? Y/N');
if subtract_data == 1
higher=input('Enter the name of the spectrum you would like to subtract from');
lower=input('Enter the name of the spectrum you are subtracting');
new_data=higher-lower;
filename=input('Input file name: ', 's');

...?

end

I am not sure where to go from here how to get the variable new_data to be titled what the user inputs as filename.

thanks
 
Physics news on Phys.org
anon0219 said:
Hi,

I am writing a program where I have the user input the name of two previously created vectors, the computer subtracts them and then generates a variable in the workspace. I was wondering if there was a way to let the user pick this name. I have so far (Y and N have been previously defined as 1 and 0):

subtract_data=input('Would you like to subtract any data sets? Y/N');
if subtract_data == 1
higher=input('Enter the name of the spectrum you would like to subtract from');
lower=input('Enter the name of the spectrum you are subtracting');
new_data=higher-lower;
filename=input('Input file name: ', 's');

...?

end

I am not sure where to go from here how to get the variable new_data to be titled what the user inputs as filename.

thanks

You can use the eval function to evaluate text strings:
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/eval.html

>> bob = 'eye(3)'
>> eval(bob)

would run the command to create a 3x3 identity matrix. Really helpful (if inefficient) command since you can generate stuff on the fly, e.g. plotting a variable number of datasets on a 2D graph.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
6K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K