How do I exclude data knowing the rownumbers?

2 views (last 30 days)
Sam
Sam on 17 Mar 2016
Answered: Guillaume on 21 Mar 2016
In parameter 'I' i have the rownumbers of the values i want to keep in a dataset. All the other rows have to be deleted. How do i do this?
[num,txt,raw] = xlsread('cg_uit_beta2');
A = txt(:,1);
[num2,txt2,raw2] = xlsread('cg_uit_beta2_2');
B = txt2(:,1);
L = ismember(A,B);
I = find(L); %this is a 1197 vector, containing the rownumbers of the values i want to keep.

Answers (2)

Guillaume
Guillaume on 21 Mar 2016
find and your I array is not needed. You can directly use the logical array returned by ismember:
A(ismember(A, B)) = []; %remove elements in A that are not found in B
%or
C = A(ismember(A, B)); %copy elements of A that are found in B

Pavithra Ashok Kumar
Pavithra Ashok Kumar on 21 Mar 2016
As per my understanding, l = array of indices that needs to be preserved and A is the complete matrix. If you have the list of rows you want to keep, use this way:
C = A;
C = C(l, :);
C would contain only the required indices. Hope this helps.

Categories

Find more on Cell Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!