Match columns containing numbers in two cell arrays.Join the cell arrays.
조회 수: 1 (최근 30일)
표시 이전 댓글
I have a cell array named data (7886x15 cell). The 15th column of this cell array contains the information of participant number ( 1, 5 , 7, 10 ...and so on). There is another cell array called participant_detail that contains (696x29 cell) in which the 2nd column contains the participant number.
I want to write a command line that matches the participant number (i.e. 15th column of data cell array with the 2nd column of participant_detail cell array). Then picks up the corresponding row of participant_detail cell array and adds it from 16th column onward in the data cell array.
Can anyone help me out.Thanks in advance.
댓글 수: 0
채택된 답변
Guillaume
2014년 9월 9일
편집: Guillaume
님. 2014년 9월 9일
Assuming that a participant can always be found:
[~, pdrow] = ismember([data{:,15}], [participant_detail{:, 2}]);
data(:,16:44) = participant_detail(pdrow,:);
If not:
[found, pdrow] = ismember([data{:,15}], [participant_detail{:, 2}]);
data(found,16:44) = participant_detail(nonzeros(pdrow),:);
추가 답변 (1개)
Andrei Bobrov
2014년 9월 9일
A - cell array 7886x15; B - cell array 696x29
[l,ii] = ismember([A{:,15}],[B{:,2}]);
D = cell(size(A,1),size(B,2));
D(l,:) = B(ii(l),:);
out = [A, D];
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!