find missing elements in a matrix

23 views (last 30 days)
Hi, I have a matrix represents code numbers.
A=[1 2 3 6 7 45 46 47 53 78 80];
B=[55.23 ,74.22]; % B is if same length of A, and contains element by element corresponding data
Say the numbers should be in the range 1:80.
How can I find the numbers which are missing in A.
eg in above case, the expected answer is missing=[4 5 8 9 ... 79]
Then to print a text file
experiment 1 results 55.23
experiment 2 results 442.23
experiment 4 data missing
.
.
experiment 79 data missing
experiment 80 results 442.2
  2 Comments
Rashmil Dahanayake
Rashmil Dahanayake on 23 Sep 2014
^ non technical comment. Scroll down to read relevant answers.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 19 Sep 2014
Try setxor :
setxor(A,1:80)
  2 Comments
Rashmil Dahanayake
Rashmil Dahanayake on 20 Sep 2014
see my updated answer incorporating Fabios

Sign in to comment.

More Answers (2)

Fabio Freschi
Fabio Freschi on 19 Sep 2014
Try this
A=[1 2 3 6 7 45 46 47 53 78 80];
all = 1:80;
missing = setdiff(all,A);
Fabio

Rashmil Dahanayake
Rashmil Dahanayake on 19 Sep 2014
Edited: Rashmil Dahanayake on 19 Sep 2014
Full Answer for my question asked previously. In case if someone might find it usefull
A=1:3:20; % in complete data
B=1:20; % Full index
missing = setdiff(B,A); % check for missing elements
A=strread(num2str(A),'%s')';
for ms=1:length(missing)
A=horzcat(A(1:(missing(ms)-1)),'misplaced results',A(missing(ms):end));
end
%A % verify answer

Products

Community Treasure Hunt

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

Start Hunting!

Translated by