How to find what number is missing from a range inside of an array?
44 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Brett Baxter
el 24 de Sept. de 2020
Comentada: Adam Danz
el 24 de Sept. de 2020
I wanted to know if there was anyway to get matlab to tell me what number was missing from an array of numbers? Kind of like a sudoku problem, I wanted to have matlab look at each row or column in an array and tell me what number from a range of numbers is missing. So, for example, if my array looks like this:
x = 5x5 array
[1 2 0 4 5
2 0 3 4 5
4 5 1 0 2
0 3 4 5 1
1 0 4 3 5]
The numbers in the array can be in any particular order, I just threw this one together for example. In this example, each row is made of elements of numbers on a range 1:5, with zero being the number that is missing from each row within that range. I know how to find all the indices outside of the range 1:5, but I wanted to know if there was a way to return what values are actually missing from each row? So, for example, I wanted to know if I can get matlab to tell me something like,
ans = 5x1 array
[3
1
3
3
2
2]
So these are the numbers that are missing from each row. Can I get matlab to do this?
0 comentarios
Respuesta aceptada
Adam Danz
el 24 de Sept. de 2020
Check out Lia = ismember(A,B)
Example
full = [1;2;3;4;5];
sample = [2;4;5];
idx = ismember(full, sample);
full(~idx)
6 comentarios
Adam Danz
el 24 de Sept. de 2020
If you want to know which elements in A are missing in the entire matrix, use
ismember(ColumnVector, matrix(:))
If you want to know which elements are missing in each row or column you'll need to loop through the rows/columns.
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing 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!