Matlab - Comando GPLOT

   
Vista:

Comando GPLOT

Publicado por David Roberto (20 intervenciones) el 29/03/2017 16:56:28
Estimados compañeros, por favor su ayuda con el comando gplot, tengo que dibujar una matriz de datos con ese comando pero la ayuda del matlab no me dice mucho como hacerlo.

envio el codigo

1
2
3
4
5
6
7
8
9
10
x=[2 4 3.5 1.5];y=[4 2.5 3 5];xt=[3 2];yt=[3 1.5];
%super matrtiz
X=[x';xt'];Y=[y';yt'];N=length(X);
for i=1:N
    for j=1:N
        d(i,j)=sqrt((X(i)-X(j)).^2+(Y(i)-Y(j)).^2);
    end
end
dmax=1.9;G=zeros(N);G(d<=dmax)=1;
figure(1);imagesc(G); colorbar;

tengo hacer un gplot de la matriz G

ayuda por favor
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 DAVID ARIZA ROYETH

Comando GPLOT

Tienes que hacer un sparse primero, en el cual coloques los nodos que van , por ejemplo si tienes tu matriz G :

1 0 1 1 1 0
0 1 1 0 1 0
1 1 1 0 1 0
1 0 0 1 0 0
1 1 1 0 1 1
0 0 0 0 1 1

ahí le estarías indicando que el nodo 1 va unido con el nodo 1 con el nodo 3 con el 4 y con el 5, esto se saca en las filas donde hay unos, en la siguiente columna haces lo mismo, es decir, que cuando apliques sparse de esto, el resultado que te va a dar son las conexiones de los nodos, luego de esto debes definirle las coordenadas x e y de donde quieres que se grafiquen, si deseas sacar las coordenadas de donde están los unos de esa matriz puedes usar
1
[x,y]=ind2sub(size(G),find(G==1))
lo que me queda en duda es si esas son las conexiones de nodos que deseas, en todo caso el comando final resultaría

1
2
[x,y]=ind2sub(size(G),find(G==1))
gplot(sparse(G),[x,y],'-*')

espero te sea de ayuda

te pongo un ejemplo más sencillo
1
2
3
a=diag(ones(1,4),-1);
a(1,5)=1;
gplot(sparse(a),rand(5,2),'-*')

si puedes visualizar en este caso mi matriz a es
0 0 0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0

lo que quiere decir que el nodo 1 va con el 2 , el 2 con el 3, el 3 con el 4 , el 4 con el 5 y el 5 con el 1 ,

luego de esto yo hago rand(5,2) que me genera una matriz de 5 filas con 2 columnas de números aleatorios que serían las coordenadas de cada uno de mis nodos y con eso me queda generalmente una figura cerrada


https://www.facebook.com/royethmatlab/
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