How to request+input variable name+value then write to file?

2 views (last 30 days)
I am trying to write a script that:
asks user for matrix name %like mat1
asks user for matrix value %like [20,30]
writes the matrix to a file
every time the script is run I want new data added to file, NOT overwriting what's already there.
-------
I use code like this to ask for variable value but don't know how to ask for variable name.
mat1 = input('Enter Name: \n','s');
-------
I use code like this to write to file but I don't know how to write a variable whose name I do not know prior to user putting it in. I also don't know how to make it so it doesn't over write information already present in file.
fid = fopen('locations.dat', 'w');
fprintf(fid,'%s\n',loc1M);
fclose(fid);

Accepted Answer

Walter Roberson
Walter Roberson on 13 Sep 2012
To append: Open the file with 'a' instead of 'w'.
You do not need to write a matrix whose name you do not know. In your problem description, the matrix name can be treated as a pure string to be written at output time: you never need to store anything into a variable with that name. Something like
fprintf(fid, '%s\n', matrix_name);
fprintf(fid, '%f ', matrix_value);
except that you need to adjust the writing of matrix value to get the correct number of columns across.
  3 Comments
sono
sono on 18 Sep 2012
Edited: sono on 18 Sep 2012
THANKS! That seems to work great except it writes
|.wSANJOSE 20.000000 30.000000
plus a little arrow character between "." and "w" that I cant paste in to this window. Any way to get rid of that "|.w" gibberish?
Could you recommend a command to search the file for name and import the adjacent variables (latitude/longitude)?
thanks!

Sign in to comment.

More Answers (0)

Categories

Find more on Data Import and Analysis 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!