Append a file, Error using save, File may be corrupt

13 views (last 30 days)
I am attempting to append either a cell or structure to a file, I have tried both, to either an .xlsx or .mat file, I have tried both.
data = uigetfile('*.mat');
s = load(data);
date = regexp(data, '\d+_\d+', 'match');
file = (s.details);
% Comment on data
comment = 'NaN';
% Create cell
IAMHS_f = [date comment file(1,1) file(1,2) file(1,3) file(1,4)];
% Create stucture
% headings = {'Date' 'Comments' 'Mean' 'Min' 'Max' 'Std'};
% IAMHS_f2 = cell2struct(IAMHS_f,headings, 2)
%%Save and append parameter
savdir = 'C:\Users\Tim\Documents\AI-LLC\DATA\2ndary\DailyDetails\FinalPlots'
save(fullfile(savdir,'IAMHS.mat'),'IAMHS_f','-append')
The files I have tried appending are empty .mat and .xlsx files. When I do so I get (Error using save, File may be corrupt)
I have also tried saving one set of data first and then doing an append feature and it appears like it overwrites the existing data. I would prefer to be able to save the first set of data without having to make any adjustments to my code to append it.
I essentially have a 1x6 (cell or structure) and want to save it and continue adding rows.

Accepted Answer

dpb
dpb on 28 Jul 2015
Edited: dpb on 29 Jul 2015
As the English definition implies, "append" means there's got to be something already there to append to. While computer-language definitions don't always have a direct correlation to the equivalent word in common usage, it appears that is the case with save.
>> dir x.*
'x.*' not found.
>> save x -append
Error using save
Unable to write file x: No such file or directory.
>>
It errors if there isn't an existing .mat file on which to append the existing array.
>> save x
>> save x -append
>> delete x.mat
>> x=[];
>> save x
>> x=rand(10,1);
>> save x -append
>> clear x
>> load x
>> whos x
Name Size Bytes Class Attributes
x 10x1 80 double
>>
Closest I could come was to create an empty file first; you could do that as part of an initialization step and then the remaining code could, it appears, be identical even for the first "real" case.

More Answers (0)

Categories

Find more on Variables 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!