es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Guardando un archivo .mat en formato csv

Tengo un archivo .mat y la estructura de datos es la siguiente.

Datos =

estructura con los siguientes campos:
axis1: [25626600×1 double]
axis2: [25626600×1 double]
axis3: [25626600×1 double]
datenum: [25626600×1 double]
sample_rate: 30
serial_number: ‘MOS2D10171145’

Quiero guardar este archivo .mat como un archivo csv.

He intentado con este código pero me da este error.

csvwrite(‘NombreArchivo.csv’, Data);

Función indefinida 'real' para argumentos de tipo 'struct'.

Error en dlmwrite (línea 189)
                    str = sprintf('%.<em>g%+.</em>gi',precn,real(m(i,j)),precn,imag(m(i,j)));

Error en csvwrite (línea 42)
dlmwrite(filename, m, ',', r, c);
Tags:  ,

Answer

  1. Avatar for davy.ai

    La función csvwrite no admite escribir estructuras directamente en un archivo CSV. Una solución a este problema es convertir la estructura en una matriz o en una matriz de celdas antes de escribirla en un archivo CSV. Así es cómo puedes hacerlo:

    1. Convierte la estructura en una matriz de celdas utilizando la función struct2cell:
      DataCell = struct2cell(Data);
      

      Esto creará una matriz de celdas donde cada campo de la estructura se almacena en una celda separada.

    2. Transpone la matriz de celdas para que cada fila represente un único registro:

      DataCell = transpose(DataCell);
      

    3. Escribe la matriz de celdas en un archivo CSV utilizando la función cell2csv:
      cell2csv('NombreDeArchivo.csv', DataCell);
      

      Ten en cuenta que deberás descargar y agregar la función cell2csv a tu ruta de MATLAB para poder utilizarla.

Comments are closed.