find missing elements in a matrix

5 次查看(过去 30 天)
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 个评论
Stephen23
Stephen23 2014-9-19
编辑:Stephen23 2014-9-19
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 2014-9-23
^ non technical comment. Scroll down to read relevant answers.

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2014-9-19
Try setxor :
setxor(A,1:80)
  2 个评论
Stephen23
Stephen23 2014-9-19
See also Fabio Freschi's answer using setdiff .
Rashmil Dahanayake
Rashmil Dahanayake 2014-9-20
see my updated answer incorporating Fabios

请先登录,再进行评论。

更多回答(2 个)

Fabio Freschi
Fabio Freschi 2014-9-19
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 2014-9-19
编辑:Rashmil Dahanayake 2014-9-19
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

类别

Help CenterFile Exchange 中查找有关 Function Creation 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by