ronan8 发表于 2007-5-16 20:28

关于错误提示??? Error using ==> mtimes

错误提示:
??? Error using ==> mtimes
Inner matrix dimensions must agree.

代码是:
lr=0.01; max_epoch=1000;%lr为学习速率,max_epoch为循环的最大次数
sl=0.99;      
err_goal=0.001;               %err_goal为期望误差最小数
W0=
A0=
N=5;    %N为概念的个数
Wk=W0;
Ak=A0;
for epoch=1:max_epoch
   Ak=Ak+Wk'*Ak;
    for i=1:N                           %计算节点Ci的值
      %Al(i,1)=1/(1+exp(-Al(i,1)));
      Al(i,1)=tanh(Al(i,1));
    end
    for i=1:N                     %更新W
      for j=1:N
            if Wk(i,j)~=0
                Wk(i,j)=sl*Wk(i,j)+lr*Ak(j,1)*(Ak(i,1)-sign(Wk(i,j))*Wk(i,j)*Ak(j,1));
            else
                Wk(i,j)=0;
          end
       end
    end
    C1(epoch)=Ak(1,1);
    C2(epoch)=Ak(2,1);
    C3(epoch)=Ak(3,1);
    C4(epoch)=Ak(4,1);
    C5(epoch)=Ak(5,1);
    f1=abs(Al(1,1)-Ak(1,1));
    f2=abs(Al(5,1)-Ak(5,1));
    if (f1<err_goal)&(f2<err_goal)break;end;
    Ak=Al;
end
disp('按任意健继续')
pause
plot(C1,'r')
hold on
plot(C2,'c')
hold on
plot(C3,'m')
hold on
plot(C4,'y')
hold on
plot(C5,'b')


麻烦高手看一下,谢谢你们了!

[ 本帖最后由 eight 于 2007-5-16 20:30 编辑 ]

eight 发表于 2007-5-16 20:32

原帖由 ronan8 于 2007-5-16 20:28 发表 http://www.chinavib.com/forum/images/common/back.gif
错误提示:
??? Error using ==> mtimes
Inner matrix dimensions must agree.

代码是:
lr=0.01; max_epoch=1000;%lr为学习速率,max_epoch为循环的最大次数
sl=0.99;      
err_goal=0.001;      ...


越界问题请自己调试一下,特别注意这行:Ak=Ak+Wk'*Ak;

ronan8 发表于 2007-5-16 20:36

对不起,那行是我刚才输入错误了,应该是
Al=Ak+Wk'*Ak;
我现在怎么尝试,都是出现那串错误的代码

eight 发表于 2007-5-16 20:38

原帖由 ronan8 于 2007-5-16 20:36 发表 http://www.chinavib.com/forum/images/common/back.gif
对不起,那行是我刚才输入错误了,应该是
Al=Ak+Wk'*Ak;
我现在怎么尝试,都是出现那串错误的代码


是调试,即程序运行跟踪,如果你不懂如何做,请看看置顶贴:聚宝盆

ronan8 发表于 2007-5-16 21:01

我用的是7.0,在debug菜单里面没有找到Set breakpoint,我是个新手,辛苦你了,别动怒

eight 发表于 2007-5-16 21:03

原帖由 ronan8 于 2007-5-16 21:01 发表 http://www.chinavib.com/forum/images/common/back.gif
我用的是7.0,在debug菜单里面没有找到Set breakpoint,我是个新手,辛苦你了,别动怒

是m文件编辑窗口,不是matlab主窗口

ronan8 发表于 2007-5-16 21:10

但是,我把程序输入以后,Set breakpoint怎么是黑的?设置不了。

ronan8 发表于 2007-5-16 21:11

好了,可以设置了,有问题在上来问你,谢谢

ronan8 发表于 2007-5-16 21:24

点run以后,在你说的那行出现了一个绿色箭头,但是没有提示,是不是说明那行存在错误?

eight 发表于 2007-5-16 21:27

原帖由 ronan8 于 2007-5-16 21:24 发表 http://www.chinavib.com/forum/images/common/back.gif
点run以后,在你说的那行出现了一个绿色箭头,但是没有提示,是不是说明那行存在错误?

no,表明程序运行到当前行,这时候可以通过 鼠标停留在某个变量上,或者命令窗口输入变量名 来查看变量的当前值

ronan8 发表于 2007-5-16 21:32

我知道错在什么地方了,那行应该是Al=Ak+Ak*Wk‘
但是运行以后,出现了这个代码,再劳驾你帮看一下,十分感谢你的帮助!!
??? Index exceeds matrix dimensions.

按任意健继续
??? Undefined function or variable 'C1'.

??? Undefined function or variable 'C2'.

??? Undefined function or variable 'C3'.

??? Undefined function or variable 'C4'.

??? Undefined function or variable 'C5'.

eight 发表于 2007-5-16 21:40

原帖由 ronan8 于 2007-5-16 21:32 发表 http://www.chinavib.com/forum/images/common/back.gif
我知道错在什么地方了,那行应该是Al=Ak+Ak*Wk‘
但是运行以后,出现了这个代码,再劳驾你帮看一下,十分感谢你的帮助!!
??? Index exceeds matrix dimensions.

按任意健继续
??? Undefined function o ...

这是变量的作用域问题,修改方法请看看 matlab 帮助:
页: [1]
查看完整版本: 关于错误提示??? Error using ==> mtimes