Matlab - compara dos vectores de coordenadas

   
Vista:

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

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

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

compara dos vectores de coordenadas

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

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
Revisar política de publicidad