Matlab - Saber coordenadas de elementos de matriz

 
Vista:

Saber coordenadas de elementos de matriz

Publicado por Luis (6 intervenciones) el 04/11/2010 12:57:52
Hola!
Tengo dos matrices, una de 640x480 (llamada A por ejemplo) elementos y otra de 307200x1 (llamada B). La segunda (B) posee los mismos elementos de la primera pero ordenados de mayor a menor. Necesitaria saber como conseguir una tercera matriz de dimensiones 307200x2 (C) donde indicaran las coordenadas que tienen los valores de B en A. No se si me explico. He probado con las orfenes find y ind2sub pero me dan problemas.
Me podriais ayudar? 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

RE:Saber coordenadas de elementos de matriz

Publicado por Jorge (226 intervenciones) el 05/11/2010 03:31:06
Quizá el problema surja porque tienes números repetidos.
Mi sugerencia es que vayas tomando los índices cuando vayas ordenando.
Puedes dejar el valor y sus índices en la misma matriz.

Esta es una idea rápida, quizá no la mejor, pero funciona:

clear, clc

A = [1 3 4 2; 3 4 5 1; 3 8 7 6]
[ren, col] = size(A);

% crea copia con la que trabajarás
B = A;

% inicia con renglón 1 en C
ic = 1;

% itera en renglones y columnas de B
for i = 1 : ren
for j = 1 : col

% obtén el máximo
M = max(max(B));

% encuentra sus índices
[r, c] = find(B == M);

% en caso de repetición, toma sólo el primer elemento
r = r(1); c = c(1);

% forma la matric C
C(ic,:) = [B(r,c) r c];

% descarta el elemento recién procesado
B(r, c) = -Inf;

% apunta al siguiente renglón de C
ic = ic+1;

end
end

% revisa los datos
C
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