zheng720 发表于 2008-1-8 11:02

Index exceeds matrix dimensions 出错求助

function f1=f(x)               %目标函数
syms x
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;
出现错误
??? Index exceeds matrix dimensions.
Error in ==> f at 3
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
我看看了论坛里的聚宝盆的帖子http://forum.vibunion.com/forum/thread-46001-1-1.html,但是还是不会改,大家帮帮忙,急!拜托了

[ 本帖最后由 eight 于 2008-1-8 11:13 编辑 ]

eight 发表于 2008-1-8 11:13

原帖由 zheng720 于 2008-1-8 11:02 发表 http://www.chinavib.com/forum/images/common/back.gif
function f1=f(x)               %目标函数
syms x
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;
出现错误
??? Index exceeds matrix dimensions.
Error in ==>...

为何对输入参数进行重新类型定义(syms)?

zheng720 发表于 2008-1-8 11:20

我只是想在函数定义里不想给x赋具体的值,所以就想这样做,不知道对不对,eight帮忙改改吧,我要达到的目的就是使我使用这两个函数时,先不给x赋值,下面的程序运行里会给x赋值

当我把syms x去掉后又出现了错误: Input argument "x" is undefined.,估计需要从命令窗口输入x的值,但是我不想这样,因为x是两个值组成的,而且x1、x2的取值范围不一样,我不知道怎么设定,所以就想这样来设,结果出错了,郁闷,帮忙看看把

[ 本帖最后由 zheng720 于 2008-1-8 11:39 编辑 ]

sigma665 发表于 2008-1-8 11:57

function f1=f(x)               %目标函数
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;
x是一个矩阵?

应该这样就可以了啊
或许你在主程序里面没有定义x

zheng720 发表于 2008-1-8 12:12

function f1=f(x)%目标函数
x=zeros;
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;
改成这个之后还是出错:Unbalanced or misused parentheses or brackets.

eight 发表于 2008-1-8 12:30

原帖由 zheng720 于 2008-1-8 12:12 发表 http://www.chinavib.com/forum/images/common/back.gif
function f1=f(x)%目标函数
x=zeros;
f1=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;
function f2=f(x)
f2=x(:,1).*(1-x(:,2))+10;
改成这个之后还是出错:Unbalanced or misused parentheses or brackets.
x=zeros(100,2);

建议多看看基础书

eight 发表于 2008-1-8 12:32

原帖由 zheng720 于 2008-1-8 11:20 发表 http://www.chinavib.com/forum/images/common/back.gif
我只是想在函数定义里不想给x赋具体的值,所以就想这样做,不知道对不对,eight帮忙改改吧,我要达到的目的就是使我使用这两个函数时,先不给x赋值,下面的程序运行里会给x赋值

当我把syms x去掉后又出现了错 ...
看不懂,是否这样:

function y=f1
x=zeros(100,2);
x(:,1) = 1;
x(:,2) = 2;
y=x(:,1).*x(:,1)/4+x(:,2).*x(:,2)/4;

zheng720 发表于 2008-1-8 12:57

是这样的,我下面是用遗传算法,对这两个函数进行优化,但是现在我假设对x赋值了之后,存在一个问题,我要是在后面对x赋值的时候,会不会影响呢
页: [1]
查看完整版本: Index exceeds matrix dimensions 出错求助