How do I create an auto named variable?

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

 Respuesta aceptada

Image Analyst
Image Analyst el 17 de Feb. de 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');

Más respuestas (1)

James Tursa
James Tursa el 17 de Feb. de 2015
Editada: James Tursa el 17 de Feb. de 2015

2 votos

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?"

Preguntada:

el 17 de Feb. de 2015

Comentada:

el 22 de Mayo de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by