Matlab - Generar un archivo netcdf en el nuevo formato de Matlab

   
Vista:

Generar un archivo netcdf en el nuevo formato de Matlab

Publicado por Marioca (2 intervenciones) el 10/07/2012 10:29:21
Estimados,

En este momento estoy generando un archivo netcdf en el nuevo formato que tiene matlab (tengo la versión 2009a) y me he encontrado con problemas debido a que no puedo guardar matrices, con los vectores no tengo inconvenientes, incluso existe un ejemplo en la página de www.mathworks.com, la cual adjunto el link.

http://www.mathworks.com/help/techdoc/ref/netcdf.putvar.html

No obstante lo anterior, se me hace complicado el formato de matrices, el programa me indica lo siguiente:

?? Error using ==> netcdflib
The number of input elements does not match the variable size.

ddata= netcdf.defDim(nc,'data',size(data)); el tamaño de la data es de 6000x2400

Saludos y les agradezco de antemano.

Mario ...
Oceanógrafo

PD: en el caso que encuentre la solución lo posteare
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

Generar un archivo netcdf en el nuevo formato de Matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 11/07/2012 17:36:03
Hola Marioca.
he estado revisando ese error de ddata= netcdf.defDim(nc,'data',size(data)); , al parecer la funcion netcdf.def solo admite como entrada un numero y no un vector y la opcion de size(data), te da como resultado como un vector,
por lo tanto mi consejo es que si tus datos estan en una matriz, entonces lo uses en fila en fila y de esta manera no tendrias problema, bueno lo haces con un blucle for o while dependiendo de tu eleccion y los vas guardandando en un vector ddata.

Eso salvaria ese problema. Pero al parecer por la cantidad de informacion que tienes se demoraria un poco para hacerlo.

Aunque es una solucion viable que te doy pero no es tan optimo.
Vale la pena intertarlo.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Generar un archivo netcdf en el nuevo formato de Matlab

Publicado por Marioca (2 intervenciones) el 12/07/2012 17:32:56
Hola Jose,

Primero que todo gracias por responderme tan rápido, en segundo lugar hice lo que me dijiste (antes lo había realizado), pero sin resultados positivos, en una de esas lo hice mal o quizás no sea el camino correcto.

En todo caso, lo más efectivo que encontré fue instalar el Matlab 2011a y tiene un upgrade de netcdf el cual pego más abajo.

MATLAB provides the following simple to use functions to read, write
and create NetCDF data files.

ncdisp - Display contents of a NetCDF file in the command window.
ncread - Read data from a variable in a NetCDF file.
ncreadatt - Read an attribute value from a NetCDF file.
ncwrite - Write data to a NetCDF file.
ncwriteatt - Write an attribute to a NetCDF file.
ncinfo - Return information about a NetCDF file.
nccreate - Create a variable in a NetCDF file.
ncwriteschema - Add NetCDF schema definitions to a NetCDF file.

y la función nccreate es algo cotidiano realizar archivos netcdf tipo matriz como pego más abajo (aparece en el help):

nccreate('myncclassic.nc','peaks',...
'Dimensions',{'r' 200 'c' 200},...
'Format','classic');
ncwrite('myncclassic.nc','peaks', peaks(200));
ncdisp('myncclassic.nc');


Cuando lo haya estudiado un poco colocare mis comentarios en el foro.

Saludos y nuevamente gracias :)

Mario...
Oceanógrafo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar