Matlab:未定义的函数' digraph'对于类型' cell'的输入参数

时间:2017-06-21 16:05:29

标签: matlab matrix graph

我有以下代码从矩阵创建一个图表,其中每列都是一个节点,每两行是一个节点,它们之间有边缘:

i=input('How many Subjects we have in the system:');
j=input('How many Objects we have in the system:');
B=randi([0 1], i*2,j); 
disp('The Matrix of the system is the following:')
display(B);                                 % Get the system matrix 
nNodeCol = size(B,2);                            % one node for each column of B
nNodeLine = size(B,1)/2;                         % one node for every two lines of B
% First the column nodes, then the line nodes:
nodeNames = [cellstr(strcat('column', num2str((1:size(B,2))'))) ; cellstr(strcat('line', num2str((1:size(B,1)/2)')))];
% Adjacency matrix adj, adj(i,j)=1 means there is an edge from node#i to node#j:
adj = zeros(nNodeCol+nNodeLine);                 % square matrix which size is the number of nodes
adj(1:nNodeCol, nNodeCol+1:end) = B(1:2:end,:)'; % edge from a column node to a line node is added for all the 1 in the first line of the node in the matrix
adj(nNodeCol+1:end, 1:nNodeCol) = B(2:2:end,:);  % edge from the line node to a column node is added for all the 1 in the second line of the node in the matrix
% Creation of the graph:
G = digraph(adj,nodeNames);
plot(G);

当我跑步时,我得到了这个错误,我没有得到它

Undefined function 'digraph' for input arguments of type 'cell'.

Error in GRAPH (line 23)
G = digraph(adj,nodeNames);

有什么建议吗?谢谢 。

1 个答案:

答案 0 :(得分:1)

正如Ander Biguri所建议的那样,问题是2015年引入了digraph。您可能正在使用旧版本。

如果您按照Sardar Usama的建议进行搜索,您会在FileExchange中找到一些替代方案。