3D matrix subtraction

16 vues (au cours des 30 derniers jours)
Thishan Dharshana
Thishan Dharshana le 12 Fév 2023
I have the following loop. The problem is I cannot get different values for NSSST as i and j changes
clear i j
for i=1:12
for j=1:12:324
NSSST=SST(:,:,j)-SSST(:,:,i);
j=j+1;
end
i=i+1;
end
end

Réponse acceptée

Image Analyst
Image Analyst le 12 Fév 2023
First of all, the clear is not necessary at all. Secondly you don't need to increment i and j because the for loops do that automatically for you. Third, you're not indexing NSSST so you're just overwriting a scalar every iteration. Maybe you want:
for i = 1 : 12
for j = 1 : 12 : 324
NSSST(i, j) = SST(:,:,j) - SSST(:,:,i);
end
end
  2 commentaires
Torsten
Torsten le 12 Fév 2023
Modifié(e) : Torsten le 12 Fév 2023
But you don't get scalars, but 2d matrices as results from the subtraction ...
Maybe something like
count = 0;
for i = 1 : 12
for j = 1 : 12 : 324
count = count + 1;
NSSST(:,:,count) = SST(:,:,j) - SSST(:,:,i);
end
end
Thishan Dharshana
Thishan Dharshana le 12 Fév 2023
Modifié(e) : Thishan Dharshana le 12 Fév 2023
Thanks a lot. The answer with "count" is what I wanted.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by