![]() |
MATLAB中的矩阵索引错误
我不断在Matlab中收到此错误:
[INDENT]尝试访问r(0,0);索引必须为正整数或逻辑。 15 = Romberg时出错 [/INDENT]我用Romberg(1.3, 2.19,8)跑了 我认为问题在于该语句不合逻辑,因为我将其设为肯定,但仍然遇到相同的错误。任何人都知道我该怎么办? function Romberg(a, b, n) h = b - a; r = zeros(n,n); for i = 1:n h = h/2; sum1 = 0; for k = 1:2:2^(i) sum1 = sum1 + f(a + k*h); end r(i,0) = (1/2)*r(i-1,0) + (sum1)*h; for j = 1:i r(i,j) = r(i,j-1) + (r(i,j-1) - r(i-1,j-1))/((4^j) - 1); end end disp(r); end function f_of_x = f(x) f_of_x = sin(x)/x; end [B]回答:[/B] 在两行中,您使用0进行索引,而这在Matlab中是不行的: r(i,0) = (1/2)*r(i-1,0) + (sum1)*h; 和 r(i,j) = r(i,j-1) + (r(i,j-1) - r(i-1,j-1))/((4^j) - 1); 当j == 1或i == 1时。 我建议您从2开始运行循环,并分别用(i-1)和(j-1)替换指数i和j。 顺便说一句:您可以编写循环 for k = 1:2:2^(i) sum1 = sum1 + f(a + k*h); end 如 k = 1:2:2^i; tmp = f(a + k*h); sum1 = sum(tmp); 如果将f_of_x写为 sin(x)./x [url=https://stackoverflow.com/questions/2497241]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 04:56。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.