Retrieving numbers present within an array by knowing the coordinates
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alberto Acri
el 14 de Feb. de 2023
Hi! I have a fairly easy question but whose error I can't figure out.
I have the array "image_DEF_number_pixel" and the coordinates (x,y) in "union". I would like to create a vector containing the values present in "image_DEF_number_pixels" based on the coordinate (x,y) present in "union".
For example:
--> line 129 of "union" has coordinates (202, 188)
--> the value I want to get in a new vector is 186 because at coordinate (202, 188) inside "image_DEF_number_pixel" there is number 186.
Here is the line of code I am using:
image_DEF_numero_pixel = importdata('image_DEF_numero_pixel.mat');
union = importdata('union.mat');
vector = image_DEF_numero_pixel(union);
0 comentarios
Respuesta aceptada
Stephen23
el 14 de Feb. de 2023
Editada: Stephen23
el 14 de Feb. de 2023
The simple and efficient MATLAB approach is to use SUB2IND:
SI = load('image_DEF_numero_pixel.mat')
im = SI.image_DEF_numero_pixel;
SU = load('union.mat')
un = SU.union;
idx = sub2ind(size(im),un(:,1),un(:,2));
out = im(idx)
0 comentarios
Más respuestas (1)
Torsten
el 14 de Feb. de 2023
image_DEF_numero_pixel = importdata('image_DEF_numero_pixel.mat')
union = importdata('union.mat')
vector = arrayfun(@(x,y)image_DEF_numero_pixel(x,y),union(1:size(union,1),1),union(1:size(union,1),2))
0 comentarios
Ver también
Categorías
Más información sobre Operators and Elementary Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!