for loop involving matrix with 3 indices

Hi,
I am trying to obtain a matrix with 3 indices (represented by m, j, n respectively) via the use of a for loop. The general idea looks something like this:
I first set up the matrix to be x=zeros(M+1,J+1,N+1), where M J N are predefined constants;
I then created a triple for loop that resembles -
for n = 2:1:N+1
for m = 2:1:M+1
for j = 2:1: J+1
x(m,j,n) = ...
end
end
end
When I tried to run the code, however, I got an error message at "x(m,j,n) = ..." that says "Index in position 3 exceeds array bounds. Index must not exceed 1." Can someone enlighten me on why this error message popped out? I was certain that x was set up properly at "x=zeros(M+1,J+1,N+1)". Thanks!

5 Comments

x(m,j,n) = ...
% ^^^^ The problem is here,
% ^^^^^ not here.
You are trying to access an element of an array that does not exist. But as you did not show or explain anything about the RHS, we cannot easily help you debug invisible code.
Hi, thanks for replying. the RHS is something like this:
x(m,j,n) = (2/(vm*(S0+(j-1)*dS)^2))*(-rho*sigma*vm*(S0+(j-1)*dS)*((Vp1(m+1,j,n)-Vp1(m-1,j,n))/(2*dv))
everything above are predefined other than m, n, and j. Vp1 is also a 3-index matrix.
Also, when I wrote "x(m,j,n) = RHS", my intention is to update the value of x at (m,j,n) to be RHS value. Is it right to implement it as such?
hi sir, I just solved the problem. As u suspected, the issue is indeed in the RHS. Thank you for answering!
x=zeros(M+1,J+1,N+1)
Vp1(m+1,j,n)
% ^^ problem is in this matrix

Sign in to comment.

 Accepted Answer

It looks like your RHS matrix is 2D and not 3D. Check your RHS matrix from which you are trying to extract elements.
A = rand(2);
A(2,2,2)
Index in position 3 exceeds array bounds. Index must not exceed 1.

1 Comment

Yes I realised the issue lies in my RHS, thank you for answering!

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 9 Jan 2022

Edited:

on 9 Jan 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!