find missing elements in a matrix

10 vues (au cours des 30 derniers jours)
Rashmil Dahanayake
Rashmil Dahanayake le 19 Sep 2014
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 commentaires
Stephen23
Stephen23 le 19 Sep 2014
Modifié(e) : Stephen23 le 19 Sep 2014
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.
Rashmil Dahanayake
Rashmil Dahanayake le 23 Sep 2014
^ non technical comment. Scroll down to read relevant answers.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 19 Sep 2014
Try setxor :
setxor(A,1:80)
  2 commentaires
Stephen23
Stephen23 le 19 Sep 2014
See also Fabio Freschi's answer using setdiff .
Rashmil Dahanayake
Rashmil Dahanayake le 20 Sep 2014
see my updated answer incorporating Fabios

Connectez-vous pour commenter.

Plus de réponses (2)

Fabio Freschi
Fabio Freschi le 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 commentaire
Rashmil Dahanayake
Rashmil Dahanayake le 19 Sep 2014
this method also works

Connectez-vous pour commenter.


Rashmil Dahanayake
Rashmil Dahanayake le 19 Sep 2014
Modifié(e) : Rashmil Dahanayake le 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

Catégories

En savoir plus sur Debugging and Analysis dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by