Why Does My Matlab Code Give an Out of Bounds Error?

  • Context: MATLAB 
  • Thread starter Thread starter MaxManus
  • Start date Start date
  • Tags Tags
    Bounds Matlab
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 4K views
MaxManus
Messages
268
Reaction score
1
Hey, I have defined
Code:
pu = zeros(nx,ny,N);
pv = zeros(nx,ny,N);
pu(:,ny,:) = 1;

and written the loop:
line 38-40
Code:
 for i = 2:(nx-1);
        for i = 2:(ny-1);
            ps(i,j) = p(i,j,n) - a1*(pu(i+1,j,n) - pu(i,j,n)) -a2*(pv(i,j+1,n) - pv(i,j,n));

and I get the error
? Attempted to access pv(2,11,1); index out of bounds because size(pv)=[10,10,10].

Error in ==> fluidmekanikk at 40
ps(i,j) = p(i,j,n) - a1*(pu(i+1,j,n) - pu(i,j,n)) -a2*(pv(i,j+1,n) - pv(i,j,n));

Could someone help me with the error?
 
Physics news on Phys.org
Well, obviously, you tried to access p(2,11,1) which does not exist.

Looking at the indexes, it was probably pv(i,j+1,n), since that goes highest int he middle term.

Now... what range does j iterate over?
 
Hurkyl said:
Well, obviously, you tried to access p(2,11,1) which does not exist.

Looking at the indexes, it was probably pv(i,j+1,n), since that goes highest int he middle term.

Now... what range does j iterate over?

Thanks for fast reply and solution.
The code
Code:
for i = 2:(nx-1);
        for i = 2:(ny-1);
was supposed to be
Code:
for i = 2:(nx-1);
        for j = 2:(ny-1);
and I had used the j as variable earlier.
 
Last edited: