Matlab - ¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

 
Vista:
sin imagen de perfil

¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

Publicado por Sarita (5 intervenciones) el 18/08/2016 07:05:06
Este es mi programa y lo que quiero es guardar los valores de W1 y VDOS, en forma de vectores en archivos .dat no sé como hacerlo, por favor agradecería mucho su ayuda. saludos. Les dejo el programa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
clc
clear all
% Programa que sirve para construir la matriz dinámica y diagonalizarla det
% det(A - wI)=0,
fprintf('Operación matricial \n\n')
disp('Cálculo de la inversa de una matriz')
 
 
        fprintf('Ingresar una Matriz A \n\n')
 
natom=3;
beta=1.0d0;
masa=1.0d0;
md=zeros(natom,natom);
numdiv=50
VDOS=0;
Xfinal=4
pasos=Xfinal/numdiv
for z=1:numdiv
  zreal=z*pasos
    w2=(i*(1/natom))+zreal
  freq(z)=zreal
    md(1,1)=beta; %Matriz dinámica
for j=2:natom
    md(j,j)=2.0d0*beta;
    md(j-1,j)=-beta;
    md(j,j-1)=-beta;
end
   md(natom,natom)= beta;
 
mI=eye(natom); %Matriz identidad
 
md2=masa*w2*mI;
 
mm=md-md2;
y=imag(inv(mm))
 
temporal=0;
for t=1:1:natom
    temporal= temporal+y(t,t);
end
suma=temporal
 
 
    VDOS(z)= suma * (1/pi);
 
 
end
 
for z1=1:numdiv
    w1(z1)=sqrt(freq(z1))
    VDOS1(z1)=w1(z1)*VDOS(z1)
end
z1=1:numdiv
plot(w1(z1),VDOS1(z1))
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
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

Publicado por Daniel (264 intervenciones) el 18/08/2016 21:03:48
puedes usar esto

1
export(mat2dataset([w1',VDOS'],'Varnames',{'w1';'VDOS'}),'Delimiter','\t','file','datos.dat')

Esto te genera un archivo llamado datos.dat con dos columnas (w1 y VDOS) con los vaoles de estas variables

Comentanos como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

Publicado por Sarita (5 intervenciones) el 18/08/2016 23:11:45
Hola. muchas gracias.!!! Pero tengo problemas no corre. me dice que los parametros para delimeter con invalidos y los argumetos de que estan dentro de l as llaves.. gracias por ayudarme
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 Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

Publicado por Daniel (264 intervenciones) el 18/08/2016 23:16:47
Prueba asi

1
export(mat2dataset([w1',VDOS']),'file','datos.dat')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

Publicado por Sarita (5 intervenciones) el 23/08/2016 07:46:12
No pude. ya instale nuevamente matlab. pero ni asi.. :(
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

¿Cómo puedo guardar resultados de una operación en forma de vector en .dat ?

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 18/01/2017 16:34:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
clear all
% Programa que sirve para construir la matriz dinámica y diagonalizarla det
% det(A - wI)=0,
fprintf('Operación matricial \n')
disp('Cálculo de la inversa de una matriz')
fprintf('Ingresar una Matriz A \n\n')
natom=3;
beta=1.0d0;
masa=1.0d0;
md=zeros(natom,natom);
numdiv=50;
VDOS=0;
Xfinal=4;
pasos=Xfinal/numdiv;
for z=1:numdiv
  zreal=z*pasos;
    w2=(i*(1/natom))+zreal;
  freq(z)=zreal;
    md(1,1)=beta; %Matriz dinámica
for j=2:natom
    md(j,j)=2.0d0*beta;
    md(j-1,j)=-beta;
    md(j,j-1)=-beta;
end
md(natom,natom)= beta;
mI=eye(natom); %Matriz identidad
md2=masa*w2*mI;
mm=md-md2;
y=imag(inv(mm));
temporal=0;
for t=1:1:natom
    temporal= temporal+y(t,t);
end
suma=temporal;
VDOS(z)= suma * (1/pi);
end
 
for z1=1:numdiv
    w1(z1)=sqrt(freq(z1));
    VDOS1(z1)=w1(z1)*VDOS(z1);
end
z1=1:numdiv;
plot(w1(z1),VDOS1(z1))
 
M=[w1' VDOS'];
nombre='archivos.dat';
fid=fopen(nombre,'w');
fprintf(fid,'  w1   VDOS   \n');
for i=1:size(M,1)
    for j=1:size(M,2)
     fprintf(fid,'%7.4f\t',M(i,j));
    end
    fprintf(fid,'\n');
end
fclose(fid);
open(nombre)

1
2
3
4
>> archivos_dat
Operación matricial
Cálculo de la inversa de una matriz
Ingresar una Matriz A 

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


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