Ich habe eine Funktion, die yout_new (5000,1) bei jeder Iteration erzeugt und diese Daten in einer netcdf-Datei speichern und die bei jeder Iteration erzeugten neuen Daten an diese anhängen soll vorhandene Datei. Bei der zweiten Iteration sollte die gespeicherte Variablengröße yout_new (5000,2) sein. Hier ist mein Versuch, der nicht funktioniert. Gibt es einen schönen Weg, es zu tun?Daten an 2-D-Array anhängen Netcdf-Format Matlab
neq=5000;
filename='thrust.nc';
if ~exist(filename, 'file')
%% create file
ncid=netcdf.create(filename,'NC_WRITE');
%%define dimension
tdimID = netcdf.defDim(ncid,'t',...
netcdf.getConstant('NC_UNLIMITED'));
ydimID = netcdf.defDim(ncid,'y',neq);
%%define varibale
varid = netcdf.defVar(ncid,'yout','NC_DOUBLE',[ydimID tdimID]);
netcdf.endDef(ncid);
%%put variables from workspace (i is the iteration)
netcdf.putVar(ncid,varid,[ 0 0 ],[ neq 0],yout_new);
%%close the file
netcdf.close(ncid);
else
%% open the existing file
ncid=netcdf.open(filename,'NC_WRITE');
%Inquire variables
[varname,xtype,dimids,natts] = netcdf.inqVar(ncid,0);
varid = netcdf.inqVarID(ncid,varname);
%Enquire current dimension length
[dimname, dimlen] = netcdf.inqDim(ncid,0);
% Append new data to existing variable.
netcdf.putVar(ncid,varid,dimlen,numel(yout_new),yout_new);
netcdf.close(ncid);
Danke mate! ... funktioniert gut ... Gibt es eine zusätzliche Option in nccreate, mit der Sie die vorhandene Datei überschreiben können ... derzeit verwende ich, wenn exist() testen und löschen Sie die Datei .. –
Nein _nccreate_ doesn Habe diese Option nicht. Mach weiter mit _exist_ .. –