MATLAB Answers

0

find missing elements in a matrix

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

Your edit added "Then print to a text file". This is:
  • A separate topic.
  • Easy to solve yourself using any search engine.
Other users here are not paid to write your code for you, but will happily help if there is something that needs explaining or clarification.
^ non technical comment. Scroll down to read relevant answers.

Sign in to comment.

Products

3 Answers

Answer by Stephen Cobeldick on 19 Sep 2014
 Accepted Answer

Try setxor :
setxor(A,1:80)

  2 Comments

See also Fabio Freschi's answer using setdiff .
see my updated answer incorporating Fabios

Sign in to comment.


Answer by 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

  1 Comment

Sign in to comment.


Answer by Rashmil Dahanayake on 19 Sep 2014
Edited by 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

  0 Comments

Sign in to comment.