Error in matrix dimension and using a plus sign?
1 回表示 (過去 30 日間)
古いコメントを表示
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
0 件のコメント
採用された回答
the cyclist
2013 年 6 月 19 日
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.
0 件のコメント
その他の回答 (1 件)
Andrei Bobrov
2013 年 6 月 19 日
編集済み: Andrei Bobrov
2013 年 6 月 19 日
Wikipedia about your problem:
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))); your code
M = h*sum(f(1:end-1)+f(2:end))/2; % from Wikipedia
end
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!