How to map points in Vector A with many points in vector B?
Mostrar comentarios más antiguos
Hi,
I have two row vectors with the same size.
A = randi(100,1,100); % Elements of A represent cities
B = randi([101, 200],1,100); % Elements of B represent some other cities
Is it possible to map each element in A with many elements in B ? For example, I want to connect A (i) with, let's say, three cities in B. Where i is a city in vector A.
Is it doable under some constraints?
Thanks!
4 comentarios
Steven Lord
el 14 de Mzo. de 2021
What do you want to do with this information? Do you want a graph object that would let you calculate distances between cities as well as shortest paths? Do you want to be able to look up which cities are connected with which other cities? Are you looking to try to populate a drop-down in an app with A and B to let users select two cities?
Knowing how you want to use this data may guide the best data structure to use to store the data.
Rayan Glus
el 14 de Mzo. de 2021
Editada: Rayan Glus
el 15 de Mzo. de 2021
Waseem AL Aqqad
el 16 de Mzo. de 2021
Hi Rayan,
For the case of one to many structure or mapping, the two networks or graphs cannot have the same number of nodes. Otherwise, half the number of nodes in one of the graphs would be considered autonomous nodes, that is, independent nodes.
So, if graph G has 8 nodes, graph H should have c * numnodes(G) nodes, where c is a positive integer. Let's assume that c = 2, then numnodes(H) = 16. Another constraint would be that each node i in G should be mapped to the same number of nodes in H. In our example, each node i in G should be mapped to two nodes in H.
The staff at Mathworks developed an amazing toolbox for graph theory, so you might want to check this page to help you have a better understanding.
Rayan Glus
el 17 de Mzo. de 2021
Respuestas (1)
You can do this using an adjacency matrix:
A = [1 1 0; 0 0 1; 1 0 1];
D = digraph(A);
D.Nodes.Name = ["Boston"; "New York"; "Los Angeles"]
plot(D)
Or you could build an empty graph or digraph and use addedges and addnodes to built it up incrementally.
D2 = digraph;
D2 = addedge(D2, "Boston", "Boston");
D2 = addedge(D2, "Boston", "New York");
D2 = addedge(D2, "New York", "Los Angeles");
D2 = addedge(D2, "Los Angeles", "Boston");
D2 = addedge(D2, "Los Angeles", "Los Angeles")
plot(D2)
1 comentario
Rayan Glus
el 18 de Mzo. de 2021
Categorías
Más información sobre Graph and Network Algorithms en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

