Effacer les filtres
Effacer les filtres

how do i make a for loop picking out adjacent values of an 2D array

4 vues (au cours des 30 derniers jours)
minion001
minion001 le 8 Sep 2017
Commenté : Image Analyst le 8 Sep 2017
For example
I have the matrix
A= [1 3 4 7 3;
5 4 3 7 2;
9 8 6 5 2;
9 6 3 1 6;
2 9 6 8 5]
My current position is at A(3,3) which is equal to 6. How do I make a loop that will pick out the minimum adjacent values of 6 which are [7 5 1]

Réponse acceptée

Image Analyst
Image Analyst le 8 Sep 2017
Assuming you actually meant [7; 5; 1] instead of [7 5 1], you can get the three elements in the column to the right of some specified element like this:
A = [1 3 4 7 3;
5 4 3 7 2;
9 8 6 5 2;
9 6 3 1 6;
2 9 6 8 5]
row = 3; % Whatever...
col = 3;
output = A(row-1:row+1, col+1)
  1 commentaire
Image Analyst
Image Analyst le 8 Sep 2017
You'd have to check the rows and columns to make sure they are not outside the array. Here is how to check the row:
row1 = max(1, row-1);
row2 = min(size(A, 1), row);
output = A(row1:row2, col+1)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Sparse Matrices 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