MATLAB Answers

0

trying to create objects in a for loop

Asked by jeff wu on 31 Mar 2012

hi, i get an error but i dont understand why this isnt working

liste = [node(1,2)]%;subdiv(xkoord);
for i=2:4
  liste(i+1) = node(1,2)%;subdiv(xkoord);
end
classdef node
  properties 
      x;
      y;
      bearing=0;
  end % properties
  methods
      function obj = node(x,y)
          obj.x=x;
          obj.y=y;
        end%functions
    end%methods
end %class

??? Input argument "x" is undefined.

Error in ==> node>node.node at 9 obj.x=x;

at the second call in the for it crashes

thanks for help

  0 Comments

Log in to comment.

1 Answer

Answer by Jim Hokanson on 31 Mar 2012

Matlab is trying to construct space for the object before you actually construct the object. In other words, Matlab is calling your constructor without any input arguments. If you add the following to your constructor call and you should be fine

if nargin == 0
return
end

  0 Comments

Log in to comment.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Win prizes and improve your MATLAB skills

Play today