
Re: Error : Inner matrix dimensions must agree When computing the three dimensional integral.
Posted:
Jun 20, 2013 10:51 AM


"someone" <someone@somewhere.net> wrote in message news:kpt46r$qf3$1@newscl01ah.mathworks.com... > "yolanda" wrote in message <kpskm1$d1b$1@newscl01ah.mathworks.com>... >> Error : Inner matrix dimensions must agree When computing the three >> dimensional integral. The code is as follows: >> >> m1 = 20; >> v1 = 60; >> m2 = 20; >> v2 = 60; m3 = 20; >> v3 = 60; cov = [ 60,0,0; >> 0,60,0; >> 0,0,60] >> cov1=inv(cov) >> f = @(z,y,x) exp( >> ([(xm1),(ym2),(zm3)]*(cov1)*[(xm1);(ym2);(zm3)])./(2) )
http://www.mathworks.com/help/matlab/ref/triplequad.html
"The first input, fun, is a function handle. fun(x,y,z) must accept a vector x and scalars y and z, and return a vector of values of the integrand."
When your function is called with a vector z and scalar x and y, the expressions (xm1) and (ym2) will be scalars but the expression (zm3) will be a vector. One of the concatenation steps will not work:
[(xm1),(ym2),(zm3)] % Doesn't work if z is a column vector [(xm1);(ym2);(zm3)] % Doesn't work if z is a row vector
I believe z will be a row vector, so the latter step will not work.
 Steve Lord slord@mathworks.com To contact Technical Support use the Contact Us link on http://www.mathworks.com

