声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7996|回复: 11

[编程技巧] 关于错误提示??? Error using ==> mtimes

[复制链接]
发表于 2007-5-16 20:28 | 显示全部楼层 |阅读模式

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

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

x
错误提示:
??? 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=[0 0 0 0 0;0 0 0 0.9999 0.9999;0.3670 0.1511 0 0.9999 0;0.4968 0.9999 0 0 0.9999;0.4359 0.3496 0 0.9999 0]
A0=[0.0547 -0.0570 0.0433 0.0678 -0.0536]
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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-16 20:32 | 显示全部楼层
原帖由 ronan8 于 2007-5-16 20:28 发表
错误提示:
??? 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;
 楼主| 发表于 2007-5-16 20:36 | 显示全部楼层
对不起,那行是我刚才输入错误了,应该是
Al=Ak+Wk'*Ak;
我现在怎么尝试,都是出现那串错误的代码
发表于 2007-5-16 20:38 | 显示全部楼层
原帖由 ronan8 于 2007-5-16 20:36 发表
对不起,那行是我刚才输入错误了,应该是
Al=Ak+Wk'*Ak;
我现在怎么尝试,都是出现那串错误的代码



是调试,即程序运行跟踪,如果你不懂如何做,请看看置顶贴:聚宝盆
 楼主| 发表于 2007-5-16 21:01 | 显示全部楼层
我用的是7.0,在debug菜单里面没有找到Set breakpoint,我是个新手,辛苦你了,别动怒
发表于 2007-5-16 21:03 | 显示全部楼层
原帖由 ronan8 于 2007-5-16 21:01 发表
我用的是7.0,在debug菜单里面没有找到Set breakpoint,我是个新手,辛苦你了,别动怒


是m文件编辑窗口,不是matlab主窗口
 楼主| 发表于 2007-5-16 21:10 | 显示全部楼层
但是,我把程序输入以后,Set breakpoint怎么是黑的?设置不了。
 楼主| 发表于 2007-5-16 21:11 | 显示全部楼层
好了,可以设置了,有问题在上来问你,谢谢
 楼主| 发表于 2007-5-16 21:24 | 显示全部楼层
点run以后,在你说的那行出现了一个绿色箭头,但是没有提示,是不是说明那行存在错误?
发表于 2007-5-16 21:27 | 显示全部楼层
原帖由 ronan8 于 2007-5-16 21:24 发表
点run以后,在你说的那行出现了一个绿色箭头,但是没有提示,是不是说明那行存在错误?


no,表明程序运行到当前行,这时候可以通过 鼠标停留在某个变量上,或者命令窗口输入变量名 来查看变量的当前值
 楼主| 发表于 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'.
发表于 2007-5-16 21:40 | 显示全部楼层
原帖由 ronan8 于 2007-5-16 21:32 发表
我知道错在什么地方了,那行应该是Al=Ak+Ak*Wk‘
但是运行以后,出现了这个代码,再劳驾你帮看一下,十分感谢你的帮助!!
??? Index exceeds matrix dimensions.

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


这是变量的作用域问题,修改方法请看看 matlab 帮助:
preallocate.bmp
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-12 20:48 , Processed in 0.058957 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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