Info
此问题已关闭。 请重新打开它进行编辑或回答。
Why do I keep getting the error message array indices must be positive integers or logical values?
1 次查看(过去 30 天)
显示 更早的评论
Array indices must be positive integers or logical values.
Error in Drift (line 12)
X(h) = X(0) + mu*h + sigma*Z;
for the following code...
T = 10;
N = 100;
h = T/N;
mu = 0.1;
sigma = 0.2;
X = zeros(1,N+1);
for k = 1:100
for i = 1:N+1
Z = normrnd(0,h);
X(h) = X(0) + mu*h + sigma*Z;
end
plot(Time,X);
hold on
end
1 个评论
John D'Errico
2019-9-27
MATLAB has an index origin of 1, not 0. So X(0) will fail, and give you exactly that error.
回答(3 个)
John D'Errico
2019-9-27
MATLAB has an index origin of 1, not 0. So X(0) will fail, and give you exactly that error. (Matt pointed that out.)
But also
T = 10;
N = 100;
h = T/N;
...
X = zeros(1,N+1);
X(h) = X(0) + mu*h + sigma*Z;
What is h? h=10/100 = 0.1.
X is a vector. Can you index a vector at the 0.1 location? Where is that? Sort of between location 0 (which does not even exist in MATLAB anyway) and memory location 1?
Sorry. Start with the getting started tutorials. You need to learn how MATLAB does indexing.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!