03-16-2020 01:04 PM
Hola
Estoy realizando un proyecto en el que necesito almacenar informacion de una señal para su posterior análisis en MatLab. Por lo que necesito almacenar dichos valores en un archivo .csv.
Cómo lo puedo hacer desde LabWindows/CVI?
Agradecería su ayuda
03-16-2020 07:50 PM
Hola, un archivo .csv básicamente es un archivo de texto con algunas características particulares, por lo que lo puedes crear con las funciones de I/O del C (fopen, fprintf, fclose) u de la librería Formatting and I/O del CVI (OpenFile, WriteFIle, CloseFile).
Lo importante es utilizar el correcto separador de los elementos, que puedes obtener del sistema con estas instrucciones:
int size;
char sList[8], msg[512];
strcpy (msg, "Control Panel");
MakePathname (msg, "International", msg);
RegReadString (REGKEY_HKCU, msg, "sList", sList, 8, &size);
Igualmente podrías adaptar el formato de los números a los datos del sistema con el comando LocalizeNumberString: primero creas la cadena de números y después la personalizas con el correcto separador decimal:
sprintf (msg, "%.1f", valor);
LocalizeNumberString (msg);
Hecho esto deberías poder ingresar to archivo a Matlab sin problemas.
03-17-2020 10:00 AM
Muchas gracias por su respuesta, probare lo que me recomienda para ver si me funciona.
Gracias
03-17-2020 10:06 AM
Tengo una duda, en estos momentos guarde los datos en un archivo extension .txt utilizando la función ArrayToFile ya que anteriormente conforme un arreglo con los valores de la señal que deseo analizar en matlab y otro con los intervalos de tiempo.
Este archivo .txt lo puedo analizar tambien en matlab?
03-17-2020 10:25 AM
No tengo experiencia con Matlab por lo que no puedo contestar precisamente. Sin embargo, ArrayToFile tiene algunas opciones para separar los dato que puedes experimentar en Matlab.
Y siempre tienes la posibilidad de elaborar el archivo generado por ArrayToFile y cambiar al separador con algo que Matlab pueda reconocer.