find missing elements in a matrix

3 visualizaciones (últimos 30 días)
Rashmil Dahanayake
Rashmil Dahanayake el 19 de Sept. de 2014
Comentada: Rashmil Dahanayake el 23 de Sept. de 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 comentarios
Stephen23
Stephen23 el 19 de Sept. de 2014
Editada: Stephen23 el 19 de Sept. de 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 el 23 de Sept. de 2014
^ non technical comment. Scroll down to read relevant answers.

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (2)

Fabio Freschi
Fabio Freschi el 19 de Sept. de 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 el 19 de Sept. de 2014
Editada: Rashmil Dahanayake el 19 de Sept. de 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

Categorías

Más información sobre Debugging and Analysis en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by