canglang 发表于 2007-5-24 21:52

[求助] 调用子函数时输出变量报发生错误

该子函数用来判断第n个多边形是否与前n-1个多边形发生重叠现象。
如果不重叠,输出该多边形,否则,n=n-1,同时回到主函数(进行下一轮循环)
代码如下:

function N=myoverlapping_determination(B,x,y,n)
    if n==1
       plot(x,y)
       axis()
    end
    if n>1
       for i=1:n-1
          XYi1=[];xi1=[];yi1=[];
          XYi1=B{1,i};                           % 第i个多边形的x,y坐标
          xi1=XYi1(:,1)';yi1=XYi1(:,2)';
         in=inpolygon(xi1,yi1,x,y);
          if isempty(in)==1
             plot(x,y)
             axis()
          else
             n=n-1;
             N=n;
             return
          end
       end
    end

运行时出现如下错误提示:
??? One or more output arguments not assigned during call to 'myconvexhull (myoverlapping_determination)'.
Error in ==> E:\matlab6.5\work\myconvexhull.m
On line 83==>   N=myoverlapping_determination(B,x,y,n);

望高手指点迷津!!

eight 发表于 2007-5-24 21:58

原帖由 canglang 于 2007-5-24 21:52 发表 http://www.chinavib.com/forum/images/common/back.gif
该子函数用来判断第n个多边形是否与前n-1个多边形发生重叠现象。
如果不重叠,输出该多边形,否则,n=n-1,同时回到主函数(进行下一轮循环)
代码如下:

function N=myoverlapping_determination(B,x,y,n)
...

返回值是变量N,请保证每个条件判断的结果都使得 N 有定义且有值

canglang 发表于 2007-5-24 22:00

太谢谢你了,eight兄!!
页: [1]
查看完整版本: [求助] 调用子函数时输出变量报发生错误