Matlab - Almacenamiento posicion de datos tras un bucle for

 
Vista:

Almacenamiento posicion de datos tras un bucle for

Publicado por Ruben (16 intervenciones) el 26/03/2015 12:39:43
Hola a todos,
estoy haciendo un bucle para leer una matriz de tamaño 3807x996. Esta matriz tiene valores constantes en su mayoria salvo algunos valores que van de 10 a 50.
Lo que quiero de Matlab es que recorra la matriz por columnas (eso ya está conseguido) y cuando encuentre el primero de estos valores de entre 10 y 50 me guarde la posición, y que cuando encuentre el último de esos valores de la columna me guarde también su posición.
Al final debería tener una 2 posiciones (i,j) en cada una de las 996 columnas.
No sé si es posible eso.
Adjunto el código que llevo escrito:
h=open('DustMS_Lev2_KlettPDR.fig');
h1=findobj(h);
y5 = get(h1(5),'CData');
y6 = get(h1(5),'XData');
y7 = get(h1(5),'YData');
nfile=max(size(y5));
for i=1:nfile;
for j=1:996;
if y5(i,j)<10;
y5(i,j)=-1;
end
end
end

for j=1:996;
for i=1:nfile;
if y5(i,j)>0;
x=find(y5(i,j));
O3(i,j)=i;
O4(i,j)=j;
% save(i,j)('columna(j)','j')
end
end
end

Muchas 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
Imágen de perfil de JESUS
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Almacenamiento posicion de datos tras un bucle for

Publicado por JESUS (1818 intervenciones) el 03/04/2015 09:48:31
bueno Ruben sí es posible y esta manera es corta:

A=magic(5) %aquí colocas tu matriz la que tengas no importa el tamaño 3807x996
for j=1:length(A(:,1))
B(1:2,j)=[find(and(A(:,j)<=50,A(:,j)>=10),1,'first');find(and(A(:,j)<=50,A(:,j)>=10),1,'last')]
end
%B te da en cada columna la primera y última posición del valor que encuentra
%éxitos
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