Azzera filtri
Azzera filtri

for loop involving matrix with 3 indices

1 visualizzazione (ultimi 30 giorni)
Mingze Yin
Mingze Yin il 9 Gen 2022
Modificato: VBBV il 9 Gen 2022
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 Commenti
Mingze Yin
Mingze Yin il 9 Gen 2022
hi sir, I just solved the problem. As u suspected, the issue is indeed in the RHS. Thank you for answering!
VBBV
VBBV il 9 Gen 2022
Modificato: VBBV il 9 Gen 2022
x=zeros(M+1,J+1,N+1)
Vp1(m+1,j,n)
% ^^ problem is in this matrix

Accedi per commentare.

Risposta accettata

KSSV
KSSV il 9 Gen 2022
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 Commento
Mingze Yin
Mingze Yin il 9 Gen 2022
Yes I realised the issue lies in my RHS, thank you for answering!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by