Check for incorrect argument data type or missing argument in call to function 'neighbors'.

1 visualización (últimos 30 días)
Hi! I am having an error on the following functions. I have all the inputs but the fucntion is still not able to read it.Please see the snapshot
j=1;
for i=1:numel(M_nodes_idx)
% disp(i)
current_node = M_nodes_idx(i,1);
if neighbors(current_node,g)~=current_node
n1n2 = neighbors(g,current_node);
  2 comentarios
Cris LaPierre
Cris LaPierre el 9 de En. de 2022
What are the values of g and current_node when you get this error? See the page Debug MALTAB Code Files if you are not sure how to get these values.
Omer Iqbal
Omer Iqbal el 9 de En. de 2022
Th value of current mode is 1, while g has all edges and nodes. I am trying to understand the problem through debuding but the problem does not seems to be clear becasue I have all the inputs and the fucntion should be working.

Iniciar sesión para comentar.

Respuestas (1)

Cris LaPierre
Cris LaPierre el 11 de En. de 2022
@Star Strider had what I thought was the correct answer. In your if statement, you reverse the order of your inputs to neighbors.
g should be your graph object (e.g. g = graph(bucky);), which we can't see, so check that, and nodeID should be a single node (e.g. current_node)
% v This should be the first input to neighbors
if neighbors(current_node,g)~=current_node
n1n2 = neighbors(g,current_node);
Try correcting the order of your inputs.
if neighbors(g,current_node)~=current_node
n1n2 = neighbors(g,current_node);
  2 comentarios
Omer Iqbal
Omer Iqbal el 12 de En. de 2022
Thank you so for your suggestions. I have tried to change the order but I am still getting the same error mentioned above.
When I looked into g( 1*1 graph) , I have found that it has two parts , one is edges while second is Nodes. The edges has values in it while Nodes doesnot have any value in it. I have used the follwoing codes to generate g. I am not sure why it is not computing the Nodes in g. Please snapshot and codes below;
for i=1:numel(EndNodes(:,1))
%disp(i)
if numel(EndNodes{i,1}{1,1})>1
EndNodes{i,1}{1,1} = min (EndNodes{i,1}{1,1});
end
EndNodes2(i,1)=EndNodes{i,1}{1,1};
if numel(EndNodes{i,1}{1,2})>1
EndNodes{i,1}{1,2} = min (EndNodes{i,1}{1,2});
end
EndNodes2(i,2)=EndNodes{i,1}{1,2};
end
% creating and empty graph and assigning edges to it
g=graph();
g = addedge(g,EndNodes2(:,1),EndNodes2(:,2));
Cris LaPierre
Cris LaPierre el 12 de En. de 2022
Please share all your code. You can attach your script using the paperclip icon.

Iniciar sesión para comentar.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by