random close numbers within an array
Mostrar comentarios más antiguos
how can i randomly extract a number and one of its four closest 'neighbours' out of an array 100x100?
5 comentarios
Tommy
el 5 de Abr. de 2020
This will give you a random element within the matrix A:
A = rand(100);
r = randi([1 size(A,1)]); % random row
c = randi([1 size(A,2)]); % random column
A(r,c)
By 'one of its four closest neighbours' do you mean any of the four adjacent elements? Or the adjacent element which is closest in value? If the former, you could always just pick
if r+1 <= size(A,1)
A(r+1,c)
else
A(r-1,c)
end
Catarina
el 5 de Abr. de 2020
John D'Errico
el 5 de Abr. de 2020
What if your randomly selected number lies on an edge of the array, or at a corner? Now will you randomly select from only 2 or 3 neighbors, or do something different?
Image Analyst
el 5 de Abr. de 2020
How about if you make it easy and just pick a random row or column between 2 and 99.
x = 1 + randi(98, 1);
y = 1 + randi(98, 1);
Will that work for you? Then you can always be assured that a neighbor will be in the array. If not, then you've got a lot more checking to do to make sure the neighbor is not outside the array. Lots of ways but they all involve lots of if blocks or loops.
Catarina
el 5 de Abr. de 2020
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!