找回密码
 注册
Simdroid-非首页
查看: 69|回复: 1

matlab计算中未定义变量问题。求助

[复制链接]
发表于 2011-6-10 14:23:33 | 显示全部楼层 |阅读模式 来自 福建福州
Matlab7.0.1版本:
   ……
    for po=1:nr  % nr是变化的
        zx(po)=x+r(po)*cos(xita+sum(newfy(1:po-1)));   % 极坐标转为直角坐标
        zy(po)=y+r(po)*sin(xita+sum(newfy(1:po-1)));
    end
……
           finalzx{cum,:}=zx;     % 将zx,zy赋予finalzx,finalzy中的cum行
           finalzy{cum,:}=zy;     
……
    for j=1:cum-1
        mj=polyarea(finalzx{j,:},finalzy{j,:})   得到j=1时,finalzx,finalzy围成多边形的面积
    end
    zmj=sum(mj)
    if zmj>S(1)
        avr=D(2)/2;
    elseif zmj>(S(1)+S(2))
        avr=D(3)/2;
    elseif zmj>(S(1)+S(2)+S(3))
        break;
    else
        avr=D(1)/2;
    end


运行之后,出现这个:
??? Undefined function or variable "mj".
Error in ==> Pol_concrete2d_nopk at 113
    zmj=sum(mj)

认为是mj=polyarea(finalzx{j,:},finalzy{j,:})   公式中,finalzy{j,:} 问题。
但是:
>> a=[2 3 4 5 8 7];
>> b=[2 3 5 6];
>> c=[3 4 6 7 8 9 8 3 4];
>> final{1,:}=a;
>> final{2,:}=b;
>> final{3,:}=c;
>> final
final =
    [1x6 double]
    [1x4 double]
    [1x9 double]
>> final{2,:}
ans =
     2     3     5     6

a=polyarea([2 4 4 2],[2 2 5 5])
a =
     6
表明是正确的。

不知道是什么原因,求高手帮忙解答。。
发表于 2011-6-10 14:50:06 | 显示全部楼层 来自 北京
Simdroid开发平台
你的mj是中间变量,变为一个矩阵会好一些,记录整个循环中的值
存在的问题可能是其中一些循环的运算中,没有计算出值来

所以出现mj未定义或无值的情况,导致出错
根据你的实现目标,仔细查一下程序,可以断点调试,看是不是每次循环mj都有值

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-6 10:47 , Processed in 0.037594 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表