
Pasar posiciones de valores de una matriz a vectores
Publicado por Manu (2 intervenciones) el 05/05/2017 16:10:04
Buenas a ver si me podeis echar una mano!
Soy nuevo en Matlab,quiero sacar de la matriz A la posición de los valores de mayor a menor,hasta un mínimo, en vectores(o matrices me da igual).
A=1 3 5
126];
El resultado que quiero obtener es x[3 3 2 2 1 1] y=[2 1 1 2 2 1]
Posiciones(columnas x, filas y) de los valores 6,5,3,2,1,1 en la matriz A. (Cuando se repite valor da igual el orden ).
Esto es lo que he pensado, el problema es que x e y no son vectores cuando compilo, sino un valor simplente(he llegado a la conclusión de cuando cumple la condición se sale del bucle y se queda con el último valor),no se como se puede hacer para que te vaya guardando todos los valores.
Un saludo y gracias
Soy nuevo en Matlab,quiero sacar de la matriz A la posición de los valores de mayor a menor,hasta un mínimo, en vectores(o matrices me da igual).
A=1 3 5
126];
El resultado que quiero obtener es x[3 3 2 2 1 1] y=[2 1 1 2 2 1]
Posiciones(columnas x, filas y) de los valores 6,5,3,2,1,1 en la matriz A. (Cuando se repite valor da igual el orden ).
Esto es lo que he pensado, el problema es que x e y no son vectores cuando compilo, sino un valor simplente(he llegado a la conclusión de cuando cumple la condición se sale del bucle y se queda con el último valor),no se como se puede hacer para que te vaya guardando todos los valores.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
%Posición de maximos de una matriz en un vector
x=[];
y=[];
A=[1 3 5
1 2 6];
O=flipud(transpose(sort(A,'descend'))); %se ordena la matriz de mayor a menor
for i=1:3
for j=1:2 %Recorro la matriz
if O(i,j)>0 %Condición
[y,x]=find(A==O(i,j));
end
end
end
Un saludo y gracias
Valora esta pregunta


0