Matlab - funcion para escribir datos de vectores

 
Vista:

funcion para escribir datos de vectores

Publicado por Lyon_ (8 intervenciones) el 31/10/2018 06:29:01
Buenassss,

Tengo que hacer una función que me escriba los datos de vectores procedentes de los resultados de cualquier modelo numérico en un archivo txt que cree nuevo, y la función tiene que ser capaz de escribir un número indefinido de vectores, cada uno definido por tres encabezados (Nombre de la variable, Unidades y Comentarios).
El objetivo es que pueda utilizar esta función con un numero infinito de datos.

Ejemplo para 2 vectores:

Fuerza_1 Despl_1
[N] [mm]
Disipador1 Disipador1

12.0 0.0005
14.3 0.0006
15.6 0.0007


Tengo dos archivos, una función:

1
2
3
4
5
6
7
8
9
10
11
function A=suma(filename,varargin)
fileId=fopen('archivo.txt','w');
fprintf (fileId,'%16s',varargin{2});
fprintf (fileId,'%16s\r\n',varargin{6});
fprintf (fileId,'%16s',varargin{3});
fprintf (fileId,'%16s\r\n',varargin{7});
fprintf (fileId,'%16s',varargin{4});
fprintf (fileId,'%16s\r\n',varargin{8});
fprintf (fileId,'%16.5f',varargin{1,1},varargin{1,5}');
fclose{fileId};
end

Y el otro es a través el cual llamo a la función, corro y me tiene que crear el txt con el encabezado y el numero de datos:
1
2
3
4
5
6
7
clc;clear;
%function Escritor (filename,varargin)
A=suma('archivo.txt',varargin);
B=[12.0,14.3,15.6];
C=[0.0005,0.0006,0.0007];
%A=suma(nombre a,unidades,comentario);
suma=('archivo.txt';B;Fuerza_1,Despl_1,[mm];[N];Disipador1,Disipador1);

Algo estoy haciendo mal porque no me corre
ayuda por favor

Gracias de antemano
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

funcion para escribir datos de vectores

Publicado por Lyon_ (8 intervenciones) el 31/10/2018 15:43:50
Los datos son los del ejemplo, que estan puestos en lo que yo he llamado B y C, y el encabezado por otra parte en 'suma'.
Fuerza_1_________Despl_1
[N] ______________[mm]
Disipador1________Disipador1

12.0_____________0.0005
14.3 ____________0.0006
15.6_____________0.0007

Deben aparecer estos datos en un 'archivo.txt' que cree
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

funcion para escribir datos de vectores

Publicado por Lyon_ (8 intervenciones) el 02/11/2018 13:11:06
Yo ejecuto el código a través de otro script donde pongo la función, no sé si se refiere a eso.
De todas formas, independientemente de lo que yo haya hecho que está mal, cómo lo haría?
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

funcion para escribir datos de vectores

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 03/11/2018 00:21:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Escritor(nombre,varargin)
% Fuerza_1_________Despl_1
% [N] ______________[mm]
% Disipador1________Disipador1 
suma(nombre,varargin)
global B C
 B=[12.0,14.3,15.6];
 C=[0.0005,0.0006,0.0007];
end
 
function suma(nombre,varargin)
global  B C
fileId=fopen(nombre,'w');
 fprintf (fileId,'%s\n',char(varargin{1}{1}));
fprintf (fileId,'%s\n',char(varargin{1}{2}));
fprintf (fileId,'%s\n',char(varargin{1}{3}));
for i=1:length(B)
    fprintf (fileId,'%12.4f %12.4f\n',B(i),C(i));
end
fclose(fileId);
end

1
2
3
4
5
6
7
8
9
>> Escritor('aaatexto.txt',' Fuerza_1_________Despl_1','[N] ______________[mm]','Disipador1________Disipador1')
>> type aaatexto.txt
 
 Fuerza_1_________Despl_1
[N] ______________[mm]
Disipador1________Disipador1
     12.0000       0.0005
     14.3000       0.0006
     15.6000       0.0007


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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

funcion para escribir datos de vectores

Publicado por Lyon_ (8 intervenciones) el 04/11/2018 12:34:55
no me funciona, me dice que no tengo suficientes argumentos...
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

funcion para escribir datos de vectores

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 04/11/2018 14:05:11
el codigo si funcionan, alli mismo tienes la forma de ejecutar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Escritor(nombre,varargin)
% Fuerza_1_________Despl_1
% [N] ______________[mm]
% Disipador1________Disipador1 
suma(nombre,varargin)
global B C
 B=[12.0,14.3,15.6];
 C=[0.0005,0.0006,0.0007];
end
 
function suma(nombre,varargin)
global  B C
fileId=fopen(nombre,'w');
 fprintf (fileId,'%s\n',char(varargin{1}{1}));
fprintf (fileId,'%s\n',char(varargin{1}{2}));
fprintf (fileId,'%s\n',char(varargin{1}{3}));
for i=1:length(B)
    fprintf (fileId,'%12.4f %12.4f\n',B(i),C(i));
end
fclose(fileId);
end

El código Escritor guarda con el nombre de Escritor.m
luego ejecuta de la siguiente manera.

1
>> Escritor('aaatexto.txt',' Fuerza_1_________Despl_1','[N] ______________[mm]','Disipador1________Disipador1')

luego escribe en comand windwos el texto type aaatexto.txt para poder ver lo que se guardado en el archivo aaatexto.txt

1
>> type aaatexto.txt
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