Inner matrix dimensions must agree 解决方法

转自 http://hi.baidu.com/kingmmxtj/blog/item/dfec6bf809bb3a09d8f9fdc2.html

提前说明:matlab中求阶乘的函数是factorial(N);具体用法请help factorial;回归本题:自从用上了matlab,发现最大的问题就是它太智能化了,而更大的问题是我觉得它应该这么智能化......所以最常见的我的错误就是Inner matrix dimensions must agree!拿factorial开刀,我要计算公式as=d!/(s!*(d-s)!)(就是组合d中取s)现初始化代码如下d=7;s=1:1:7;as=factorial(d)/(factorial(s)*factorial(d-s))公式没问题吧?运行、错误!仔细看d是一个只有一个元素7的矩阵,而s是一个1×7的矩阵,我以为matlab会自动扩充元素(如运行reshape)我错了,修改如下:添加定义D=[ d d d d d d d ];把公式中的d由D来代替,ok,运行、出错Matrix dimensions must agree!这可是个经典错误,矩阵响应元素的运算必须全部加dot。再次修改as1=factorial(D)./(factorial(s).*factorial(D-s))这次终于ok了。必须牢记一点:matlab的输入变量是矩阵,参与运算的矩阵维数必须对应!


2010-07-09 15:29 | 回复

我想提个问题: 
x=0.0:0.1:2*pi;
y=0.0:0.1:2*pi;
z=x*cos(y)*sin(x)+y*y*sin(y)*cos(x);
运行到这一步出错了!为什么啊?出错提示是:“??? Error using ==> mtimes
Inner matrix dimensions must agree.”
请高手指教!!

2011-03-22 21:03 | 回复

回复xiaozhang8712:
 应该是z=x.*cos(y).*sin(x)+y.*y.*sin(y).*cos(x)就OK了~

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值