注册 登录
编程论坛 Matlab

求助:matlab函数运行出错了

djrmav 发布于 2007-05-29 17:08, 843 次点击

.m文件如下:
x=1:1:140;
y=x*log2(1/x)+(1-x)*log2(1/(1-x));
plot(x,y);
xlabel('x');
ylabel('y');
title('x为自变量,熵为因变量的函数曲线');

我是初学者,不知道是不是函数用错了,请大家帮忙解决下
错误显示:
??? Error using ==> mrdivide
Matrix dimensions must agree.

Error in ==> Untitled at 2
y=x*log2(1/x)+(1-x)*log2(1/(1-x));

3 回复
#2
尘埃1222007-05-30 08:38
呵呵,你的运算中需要的应该用点乘,点除

y=x.*log2(1./x)+(1-x).*log2(1./(1-x));


还有一点是如果是对单个数值运算,当X取1时,分母会出现为0的情况,这和你函数本身有关系了 可以考虑下
#3
djrmav2007-05-30 12:57
以下是引用尘埃122在2007-5-30 8:38:37的发言:
呵呵,你的运算中需要的应该用点乘,点除

y=x.*log2(1./x)+(1-x).*log2(1./(1-x));


还有一点是如果是对单个数值运算,当X取1时,分母会出现为0的情况,这和你函数本身有关系了 可以考虑下

谢谢啊,

#4
尘埃1222007-05-30 13:50
    
1