声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1301|回复: 4

[编程技巧] 请问matlab 程序是什么错误?

[复制链接]
发表于 2011-3-31 17:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 licm 于 2011-3-31 17:27 编辑

不知道错误出在哪里,
源程序:function y=za(z)
[a,c]=size(z);
f=[];
for i=1:c
     
    f(i)=z(1,i)-z(a,i);
end
[minv,columnx]=min(f)

z0=z(:,columnx);%choose the optimal solution
[maxg,columng]=max(consg(z0));
syms z1 z2 z3 z3 z4 z5 z6 z7 z8 z9 z10;
cc=c;
while maxg>0
gradg=jacobian([z1+z2^2,z2^3],[z1,z2,z3,z4,z5,z6,z7,z8,z9,z10]);
gradp=subs(gradg(columng,:),{z1,z2,z3,z4,z5,z6,z7,z8,z9,z10},{z0(1),z0(2),z0(3),z0(4),z0(5),z0(6),z0(7),z0(8),z0(9),z0(10)});

grad=double(gradp);
p0=double(maxg);

Vne=[];
l=[];
for i=1:cc
l(i)=grad*(z(:,i)-z0)+p0;
if l(i)<=0
   Vne=[Vne z(:,i)];

end
end

z=Vne;

[a,cc]=size(z);

f=[];
for i=1:cc
     f(i)=z(1,i)-z(a,i);
end
[minv,columnx]=min(f);
z0=z(:,columnx);
[maxg,columng]=max(consg(z0));

end

运行结果 ??? Attempted to access z(1); index out of bounds because numel(z)=0.

Error in ==> consg at 4
g=[z(1)+z(2)^2,z(2)^3];

Error in ==> za at 45
[maxg,columng]=max(consg(z0));
回复
分享到:

使用道具 举报

发表于 2011-4-1 00:40 | 显示全部楼层
本帖最后由 ChaChing 于 2011-4-1 01:09 编辑

回复 1 # licm 的帖子

1.个人水平专业有限, consg好像没交代!?
2.请标题要明确!

评分

1

查看全部评分

发表于 2011-4-1 10:34 | 显示全部楼层
回复 1 # licm 的帖子

程序运行错误,可以单步调试,定位到出错的地方。你的还是矩阵访问超出矩阵的边界
发表于 2011-4-7 13:01 | 显示全部楼层
好像是数组越界了
 楼主| 发表于 2011-4-12 10:03 | 显示全部楼层
谢谢谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 11:45 , Processed in 0.074784 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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