escribir un archivo para después poder leerlo en matlab

Iniciado por fafafa01, 11 Mayo 2016, 05:22 AM

0 Miembros y 1 Visitante están viendo este tema.

fafafa01

Hola como dice el titulo, lo que quiero hacer es escribir un archivo  .txt o .dat con números  los números que se escriben en el archivo se sacan de un arreglo previamente cargado, el problema es que no se si mi archivo esta escribiendo bien los datos porque matlab no me lo abre.

a continuación mi código:


#include <stdio.h>
#include <math.h>
#define PI   3.141592653589
void archivo_matlab(float,float,float,float,float);

void main (void) {
archivo_matlab(1,2,3,4,5);
}

void archivo_matlab(float A,float a,float h,float B,float b) {
float arre1[151],t=0,x=0,y=0;
int i=0;
FILE *fichero;
while (t<=2*PI){
x=A*sin(a*t+h);
arre1[i]=x;
t=t+PI/75;
i++;
}
fichero=fopen("datos1.dat","w");
fwrite(arre1,sizeof(float),151,fichero);
fclose(fichero);
}




AlbertoBSD

Hola estas escribiendo los datos en formato raw o binario oo cual es bueno cuando lo lees desde otro programa igual. pero no recuerdo si matlab necesira los numeros en formato ascii.. esto es el numero como cadena 10.527388  y demas.

Para hacer esto debes de cambiar el fwrite por fprintf y imprimirlos de uno en uno dentro del ciclo donde creas los numeros y mas o menos asi

fprintf(fichero,"%f\n",x);
En dado caso ya no necesitarias el arreglo ademas de abrir el archivo antes de que empieze el ciclo.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

fafafa01

muchísimas gracias... otra cosa:
me podrías explicar estas lineas de código, no las entiendo:


int main ( int argc, char **argv )




Cita de: AlbertoBSD en 11 Mayo 2016, 14:27 PM
Hola estas escribiendo los datos en formato raw o binario oo cual es bueno cuando lo lees desde otro programa igual. pero no recuerdo si matlab necesira los numeros en formato ascii.. esto es el numero como cadena 10.527388  y demas.

Para hacer esto debes de cambiar el fwrite por fprintf y imprimirlos de uno en uno dentro del ciclo donde creas los numeros y mas o menos asi

fprintf(fichero,"%f\n",x);
En dado caso ya no necesitarias el arreglo ademas de abrir el archivo antes de que empieze el ciclo.

AlbertoBSD

¿Si funciono ?

sobre la otra pregunta

int argc, char **argv

Son variables para que el programa pueda manejar los parametros.

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

fafafa01