Matlab - Ayuda programa, leer desde archivo + grafica

   
Vista:

Ayuda programa, leer desde archivo + grafica

Publicado por AMGM (3 intervenciones) el 26/02/2015 00:49:47
¡Hola a tod@s!

Escribo pues me han surgido unas dudas.
Estoy haciendo mi PFC, y claro yo era ta feliz obteniendo los datos, pasándolos a Excel y haciendo allí mis gráficas.
Pues bueno, hoy mi supervisor me dice.....bien, en excel las cosas están bien para tener una idea, pero lo adecuado para un profesional es que quede en Matlab..
MAtlab!! llevo siglos sin usarlo la verdad y a penas me acuerdo de nada.

Estoy haciendo unos ensayos de corrosión, y los resultados salen en un archivo .asc ejemplo :
14301_00_AL2O3_q1_01_20150220.asc

Este archivo está en forma de matriz (4 columas)

0000 1111 4444 121111
1111 44444 1414 12121
020 4747 888 98989

Me gustaría ver los datos en matlab y llamar a las columnas:

1 columna: tiemoi (min)
2 columna: potencia
3 columna : ------
4 columna: corriente.


Ahora, una vez con estos datos en matlab, quisiera hacer una gráfica donde se representa la corriente VS la potencia
en el eje horizontal poner la potencia y en el eje vertical poner la corriente. (ponerle nombre a los ejes en el gráfico y además ponerle título como por ejemplo P Vs C)

y además necesitaría saber que potencia tengo cuando la corriente (4 columna) es de 0.1
(hacer una búsqueda en la 4 columa =0.1 (positivo) y que me de el valor de la segunda columna.

es decir que me aparezca algo como " para la corriente de 0.1.. tiene una potencia de 479,674744 )

------
Esto lo tengo que hacer para cada archivo :( (los cuales tienen diferentes nombres) es posible realizar otro programa en el cual recopile cada uno de los datos de la potencia en el que la corriente es 0.1 y luego hacer la media????? ----- es que tengo mas de 300 archivos---- :(

Muchas gracias, espero que me podáis ayudar.
gracias de nuevo.
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
información
Otras secciones de LWP con contenido de Matlab
- Código fuente de Matlab
- Cursos de Matlab
- Temas de Matlab
- Chat de Matlab
información
Códigos de Matlab
- Fixed Pivot
- TRIÁNGULO
- DÍAS DE LA SEMANA

Ayuda programa, leer desde archivo + grafica

Publicado por AMGM (3 intervenciones) el 26/02/2015 14:55:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
clear
m=load('data1.txt');
[f,c]=size(m);
M=importdata('data1.txt',' ',f);
M1=M;
B=zeros(f,4);
[n,c1]=size(M);
for i=1:n
v=find(M{i}==',');
M{i}(v)='.';
B(i,:)=str2num(M{i});
end
M=B;
 
disp(M);
 
 
New=[M(:,2) M(:,4)]
 
New((New(:,2)==0),:)=[]
 
plot(New )


**** Por ahora tengo esto, buscando y buscando por el foro.
pero ¿Cómo podría poner nombre a los ejes de mi gráfico?
¿Como podría mostrar la matriz con los 6 decimales que tiene?
gracias
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

Ayuda programa, leer desde archivo + grafica

Publicado por Daniel (212 intervenciones) el 26/02/2015 17:37:39
Acá te dejo un código para esto, al ejecutarlo sólo tenes que especificar el directorio en el que se encuentran los archivos.

Te recomiendo probar con un directorio que no tenga mas de 30 archivos para ver si anda todo ok


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
path=uigetdir('C:\Users\Daniel\Documents\MATLAB\');
clc
a=dir([path '\*.asc']);
for j=1:size(a,1)
fid = fopen([path '\' a(j).name],'rt');
str = fread(fid,'*char')';
fclose(fid);
str = strrep(str,',','.');
[tiempo,potencia,~,corriente] = strread(str,'%f %f %f %f','delimiter',' ');
clear str fid
ind=find(corriente>0.1,1);
c01=corriente(ind);
p01(j)=potencia(ind);
figure(ceil(j/9))
subplot(3,3,j-(ceil(j/9)-1)*9)
plot(corriente,potencia,'.',[.1 .1], [min(potencia) max(potencia)],c01,p01(j),'or')
title(['P vs C  ( Archivo : ' a(j).name ' )'])
xlabel('Corriente')
ylabel('Potencia')
text(c01,p01(j),'\leftarrow la corriente supera 0.1','HorizontalAlignment','left')
 
end
figure(ceil(j/9)+1)
plot(p01)
xlabel('Número de archivo')
ylabel('Potencia')
title('P(C = 0.1) vs Número de Archivo')

Contanos después 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
2
Comentar

Ayuda programa, leer desde archivo + grafica

Publicado por AMGM (3 intervenciones) el 01/03/2015 13:54:58
Hola, Gracias Daniel por tu respuesta!
Es parecido a lo que he explicado, pero no es el resultado que busco.
Subo un archivo con datos y otro archivo excel con lo que me gustaría que hiciese matlab
Es decir que me hiciese como una especie de tabla con los datos y me graficase la columna 2 y 4.

¿Sería posible que Matlab en una pestaña diferente montase todos los gráficos con diferentes colores para compararlos?
Muchísimas gracias por tu tiempo.
un saludo.
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