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);
}
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.
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.
¿Si funciono ?
sobre la otra pregunta
int argc, char **argv
Son variables para que el programa pueda manejar los parametros.
sisi funciono perfecto, gracias.