Inner matrix dimensions must agree 解决方法

转自:http://blog.csdn.net/majestyhao/article/details/7581595

提前说明: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的输入变量是矩阵,参与运算的矩阵维数必须对应!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值