Matlab - compara dos vectores de coordenadas

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

compara dos vectores de coordenadas

Publicado por David Roberto (20 intervenciones) el 18/05/2017 16:01:35
hola amigos por favor su ayuda quiero compara dos vectores de n filas y 2 columnas estos vectores son coordenadas, en el vector A tengo las coordenadas de postes y casas u en el vector B tengo coordenadas de solo postes, quiero generar un nuevo vector que elimine las coordenadas de los portes del vector A y solo quedarme con las coordenadas de las casas.

elemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
a1=[1 2 3 4 5 6 7 8 9 10 11 15 13];
a2=[1 2 3 4 5 6 8 10 4 3 4 5];
b1=[13 11 3];
b2=[5 3 3];
A=[a1' a2'];B=[b1 'b2'];lonA=length(a1);lonB=length(b1);newV=[]:
for i=1:lonB
for j=1:longA
if B(i,:)==A(i,:)
newV(j,:)=0:
else
newV(j,:)=A(i,:):
end
end
end
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 Daniel
Val: 399
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

compara dos vectores de coordenadas

Publicado por Daniel (264 intervenciones) el 18/05/2017 20:01:08
No sé si entendí del todo tu consulta... seria sacar las coordenadas de B que coincidan (ambas) con las de A?

Si es así fijate si esto te sirve:

1
2
3
4
5
6
7
8
9
10
11
12
clc
clear all
a1=[1 2 3 4 5 6 7 8 9 10 11 15 13];
a2=[1 2 3 4 5 6 8 10 4 3 4 5 5];
b1=[13 11 3];
b2=[5 3 3];
A=[a1' a2'];B=[b1' b2'];
newV=A;
for j=1:numel(b1)
    s=sum(abs(([newV(:,1)-B(j,1),newV(:,2)-B(j,2)])),2);
    newV(s==0,:)=[];
end

Comentanos 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
0
Comentar
sin imagen de perfil
Val: 36
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

compara dos vectores de coordenadas

Publicado por David Roberto (20 intervenciones) el 18/05/2017 21:12:42
hola daniel, te explico mejor, los dos vectores son longitud y latitud, el vector A contiene al vector B, entonces quiero eliminar en el vector A los elementos del vector B, entonces:
1
2
3
4
a1=[1 2 3 4 5 6 7 8 9 10 11 15 13];
a2=[1 2 3 4 5 6 8 10 4 3 4 5 5];
b1=[13 11 3];
b2=[5 4 3];
tendre un vecor resultado asi
1
2
3
res1=[1 2 4 5 6 7 8 9 10 15]
res2=[1 2 4 5 6 8 10 4 3 5]
Resultado=[res1' res2']
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 JESUS DAVID ARIZA ROYETH
Val: 3.732
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

compara dos vectores de coordenadas

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 19/05/2017 02:31:57
David hay una función que elimina los valores de a que están en b que se llama setdiff, mira este ejemplo :

1
2
3
4
a1=[1 2 3 4 5 6 7 8 9 10 11 15 13];
b1=[13 11 3];
c=setdiff(a1,b1);
disp(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
Imágen de perfil de Daniel
Val: 399
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

compara dos vectores de coordenadas

Publicado por Daniel (264 intervenciones) el 19/05/2017 21:51:34
ok entonces entendí bien. newV (en mi código) es lo que llamaste Resultado...

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
0
Comentar