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

46 ビュー (過去 30 日間)
Brett Baxter
Brett Baxter 2020 年 9 月 24 日
コメント済み: Adam Danz 2020 年 9 月 24 日
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 Center および File ExchangeLoops 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