How do I create an auto named variable?
4 views (last 30 days)
Show older comments
Hello all, I am currently trying to crete a data base. How do I create automated variable names? i.e. Every time the program runs (when operator clicks add user), I want the variable name to be 'user_i' where i=usernumber+1 and usernumber is the previous value of i, to then save the variable with its name to the working directory in the form of save(filename,variables,'-append').
code:
%create user profile
usertemplate=[1:3];
usertemplate(1,1)=height;
usertemplate(1,2)=width;
usertemplate(1,3)=area;
if prog>=1
user1=usertemplate;
usernumber=usernumber+1;
save('database', 'user1','usernumber',-append);
else
userforID=usertemplate;
run('Similarity.m');
end
I would like user1 in the above code to be the auto named variable.
Thank you for any help you provide, and for helping me further my knowledge,
Ben
Accepted Answer
Image Analyst
on 17 Feb 2015
I agree with James - bad idea. Just make it a structure array and save the whole array
% Add a new user
allUsers(usernumber) = usertemplate;
But since you have only one field - the 1-by-3 template vector - you could just make it a 2D matrix
allUsers(end+1,:) = usertemplate;
save('database.mat', 'allUsers');
0 Comments
More Answers (1)
James Tursa
on 17 Feb 2015
Edited: James Tursa
on 17 Feb 2015
Before you do this you should read this link:
Using variable names like this can be very cumbersome in downstream code. If you do decide to go this route, I fully expect another Question posted by you in the future along the lines of "How do I efficiently access all of the variables named user1, user2, etc in my database?"
0 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!