How to find what number is missing from a range inside of an array?

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

采纳的回答

Adam Danz
Adam Danz 2020-9-24
Example
full = [1;2;3;4;5];
sample = [2;4;5];
idx = ismember(full, sample);
full(~idx)
  6 个评论
Brett Baxter
Brett Baxter 2020-9-24
okay, so I need it to check each row or column individually? Like, I need to have row 1 be a vector, then row 2, then 3 etc?
Adam Danz
Adam Danz 2020-9-24
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by