MATLAB Answers

0

Saving a graph with edges and nodes

Asked by Deepa Maheshvare on 7 Sep 2019
Latest activity Commented on by Stephan
on 9 Sep 2019
Hi All,
I have the following graph with nodes and edges. This graph is creadted in a function defined in file create.m. Can this graph be stored and access in
another file , another.m (for instance, I'd like to assign weights to the edges of the graph in another file)?
I understand I can call the function defined in create.m from another.m. However, I don't want to do this. Instead, I prefer saving the graph object and accessing it in other
files.
NNode = 11;
tail = 1:NNode-1;
head = 2:NNode;
Graph = graph(tail,head);
plot(Graph);

  0 Comments

Sign in to comment.

Tags

Products

1 Answer

Answer by Stephan
on 7 Sep 2019
Edited by Stephan
on 7 Sep 2019
 Accepted Answer

You can not save a workspace object in a .m-file. Use a .mat-file instead to save your graph. You can load this in other scripts to work with.

  2 Comments

Thanks a lot for the response.
I did try using .mat
save('Graph.mat', 'Graph')
>> Graph = load('Graph.mat')
Graph =
struct with fields:
Graph: [1×1 graph]
I could access the nodes and edges properties using
>> height(Graph.Graph.Edges).
However, when
save('Graph.mat', '-struct', 'Graph')
is used, I get the following error
Error using save
The argument to -STRUCT must be the name of a scalar structure variable.
Error in create_graph (line 14)
save('Graph.mat', '-struct', 'Graph')
Stephan
on 9 Sep 2019
Note that a graph object is not a struct - thus you can not do it this way.

Sign in to comment.