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

9 次查看(过去 30 天)
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]

采纳的回答

Image Analyst
Image Analyst 2017-9-8
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 个评论
Image Analyst
Image Analyst 2017-9-8
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)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Sparse Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by