MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Error in matrix dimension and using a plus sign?

Asked by Snirisa Gödel on 19 Jun 2013

I am trying to write a code for the Midpoint rule given by :

M = \sum_{i=1}^{n}hf(\frac{x_{i-1}+x_{i}}{2})


My MATLAB code is following:

if true
function M = mittpunkt(fun,a,b,n)
h = (b-a)/n;
x = linspace(a,b,n);
f = fun(x);
M = h*(sum(f(((1:n-1)+(1:n))/2)));
end


My error is :

Error using  +
Matrix dimensions must agree.


If something is wrong I think it must me the index, certainly not the use of a plus sign, right? Thanks

Products

No products are associated with this question.

Answer by the cyclist on 19 Jun 2013

In the line where you calculate M, you are trying to add

(1:n-1)


and

(1:n)


which are vectors of two different lengths. Those are the dimensions that don't match.

Answer by Andrei Bobrov on 19 Jun 2013
Edited by Andrei Bobrov on 19 Jun 2013

function M = mittpunkt(fun,a,b,n)