2008057 发表于 2010-11-20 17:27

程序运行出错?Matrix must be square.

>> -log(quad('exp(5.2460.*x -0.1421.*x^2+0.0025.*x^3)',50.47,50.57))
??? Error using ==> inlineeval
Error in inline expression ==> exp(5.2460.*x -0.1421.*x^2+0.0025.*x^3)
??? Error using ==> mpower
Matrix must be square.

Error in ==> inline.subsref at 25
    INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Error in ==> quad at 62
y = f(x, varargin{:});

>>

BDHHNSWU 发表于 2010-11-20 19:38

回复 1 # 2008057 的帖子

改成:
-log(quad('exp(5.2460.*x -0.1421.*x.^2+0.0025.*x.^3)',50.47,50.57))
有结果。
ans =

-222.4361

BDHHNSWU 发表于 2010-11-20 19:40

回复 2 # BDHHNSWU 的帖子

x与^间加点:x.^2+0.0025.*x.^3

2008057 发表于 2010-11-20 20:02

回复 3 # BDHHNSWU 的帖子

呵呵,好使了,谢谢

hustxyong 发表于 2010-11-20 20:10

本帖最后由 hustxyong 于 2010-11-20 20:19 编辑

^是矩阵乘法,按照矩阵论的定义,只有方阵才能进行幂乘运算;
.^是对矩阵内每个元素进行幂次运算,对于标量^和.^的效果是一样的
所以源代码改成一下形式就可以了
-log(quad('exp(5.2460*x -0.1421*x.^2+0.0025*x.^3)',50.47,50.57))运行后虽然得到结果,但是会出现warning,因为你给定的这个函数在积分区间内实在是太大了10^97
页: [1]
查看完整版本: 程序运行出错?Matrix must be square.