Matlab - AUTOMATIZAR OPERACIONES

 
Vista:
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

AUTOMATIZAR OPERACIONES

Publicado por luis (36 intervenciones) el 12/10/2017 21:36:59
Hola...

Tengo 25 archivos.mat dentro de una carpeta. A esos archivos les estoy calculado la distancia euclídiana a través de una función que ya tengo. Me ha tocado hacer esa operación uno por uno. Lo que quiero es tener una función o script que me permita obtner los valores de todos a la vez. Hice la siguiente función pero no funcionó.

1
2
3
4
5
6
7
8
9
10
11
12
13
function [ eu,meu,seu ] = euclideana( a )
a=dir('directorio donde se encuentran los archivos .mat');
 
for i=3:length(a);
    A=a(i);
    B=a(i+1);
    eu=disteusq(A,B)
    meu=mean(eu)
    seu=std(eu)
end
 
 
end

Gracias.
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
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

AUTOMATIZAR OPERACIONES

Publicado por luis (36 intervenciones) el 13/10/2017 04:37:20
Hola, Ya las adjunté

Aclaro que la función disteusq(). es una quue se encuentra en la toolbox de matlab , trabaja con dos variables , es decir los archivos. mat que estan por dentro del directorio deben trabajar en parejas: si el el directorio es a, entonces a(1) y a(2), a(3) y a(4)... a(2i+1) y a(2i)... etc.

Donde los a(2i+1)=A y los a(2i)=B

Muchas 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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

AUTOMATIZAR OPERACIONES

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/10/2017 07:49:33
1
2
3
4
5
6
7
8
9
10
11
12
13
function [ eu,meu,seu ] = euclideana
a=dir('ruta');
cd('ruta');
for i=3:length(a)-2
A=load(a(i).name);
A=A.ans;
B=load(a(i+1).name);
B=B.ans;
 eu=disteusq(A,B);
 meu=mean(eu);
 seu=std(eu);
end
cd ..


1
2
3
4
5
6
7
8
9
10
11
12
13
>>  [ eu,meu,seu ] = euclideana
eu =
    6067/1024
    1558/265
 
     844/1047
    2372/3019
     488/631
    1937/2518
meu =
    6752/411
seu =
    3629/137

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
1
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

AUTOMATIZAR OPERACIONES

Publicado por luis (36 intervenciones) el 13/10/2017 16:57:53
Muchas gracias.. me queda la duda del comando cd..
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