Only Save the New Numerical Data to Text File

2 views (last 30 days)
I
I on 5 Apr 2022
Commented: I on 7 Apr 2022
I want to save the newly edited data to the same text file after clicking the save button.
I have 10 variables.
This is what I have for my edit data:
function EditButtonPushed(app, event)
app.T.ct(1) = app.ctEditField.Value;
app.T.cr(1) = app.crEditField.Value;
When saving the data:
Q = table2array(app.T(1, :));
fileid = fopen('filename.txt','w');
fprintf(fileid, '%6.5f ', (Q));
The textfile output is:
0.09000 0.45000 45.00000 0.00000 0.00600 0.24200 4.67000 4.00000 0.89925 1.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000 2.00000
I edited each number to 2 and for some reason, my old data appears in front of my new data.
How do I only save the newly edited data?

Answers (1)

Jan
Jan on 5 Apr 2022
If you do not close a file opened by fopen with fclose is stays open.
Solution: Append an fclose(fileid) after the fprintf.
  3 Comments
Jan
Jan on 6 Apr 2022
Is the file still open? Try to close all open files:
fclose('all')
If you are still appending the data, you either open the file with 'a' instead of 'w', or the data are included in your array Q, although you expect something else.
I
I on 7 Apr 2022
I fried fclose('all') as well. I am assuming that since the initial data is still showing up, then the initial data must be in the array for some reason. This at least helps me know where to look. Here is how I am importing and editing each piece of data:
For the open button:
[filename, path] = uigetfile('*.txt');
figure(app.UIFigure);
app.T = readtable(filename, 'Delimiter', 'space');
And then this is followed by each variable, but I'll just show 2 to be less redundant.
app.ct = app.T(1,1);
app.cr = app.T(1,2);
app.ctEditField.Value = table2array(app.ct(1,1));
app.crEditField.Value = table2array(app.cr(1,1));
The edit button:
app.T.ct(1) = app.ctEditField.Value;
app.T.cr(1) = app.crEditField.Value;
app.ctEditField.Value = app.T.ct(1);
app.crEditField.Value = app.T.cr(1);
I am failing to just replace the new value with the old value somewhere in here?

Sign in to comment.

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!