MATLAB循环赋值问题(懂的人进来指点)

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:55:04
我要对一系列的的等式后者不等式进行循环赋值
产生与
function [c,ceq]=opt_con1(x)
ceq(1)=-3*x(1)+x(2)-3*x(4);
ceq(2)=-2*x(2)+x(3)-2*x(5);
ceq(3)=4*x(4)-x(6);
c(1)=x(1)+2*x(4)-4;
c(2)=x(2)+x(5)-4;
c(3)=x(3)+x(6)-6;
end
一样的效果

我的子程序是这样的
function [c,ceq]=opt_con1(x)
dk=input('请输入等号约束式的个数','s')
for i=1:dk
ceq(i)=input('请输入各个等号约束式','s')
end
dh=input('请输入不等式约束式的个数','s')
for j=1:dh
c(i)=input('请输入各个不等式约束式','s')
end
end
没想到不可以运行
出错Subscripted assignment dimension mismatch

高手进来看看啊
解非线性规划问题的一个程序

function y=opt_fun1(x)
dk=input('请输入等号约束式的个数')
for i=1:dk
ceq(i)=input('请输入各个等号约束式','s');
end
dh=input('请输入不等式约束式的个数');
for j=1:dh
c(i)=input('请输入各个不等式约束式','s')
end
ff=optimset;%获得默认的常用变量
ff.largeScale='off';%不使用大规模问题运算

input
得到 字符型 所以不可以 运行
dk=input('请输入等号约束式的个数')
for i=1:dk
ceq(i)=input('请输入各个等号约束式','s');
end
dh=input('请输入不等式约束式的个数');
for j=1:dh
c(i)=input('请输入各个不等式约束式','s')
end
%%%%%%%%%%%%%%%
这样就好了