# Modify matrix of long length to match another using unique datum values

조회 수: 1 (최근 30일)
Eric Escoto 2019년 7월 26일
댓글: Eric Escoto 2019년 7월 26일
Hello,
I have two matrices that are different lengths. Each of these matrices has a matching datenum value and record number in the first and second column, respectively.
I am trying to reduce rows of one matrix to the other by removing all rows that don't have matching datnum values.
Some basic and short example data similar to what I'm working with:
matrix1 = [datenum_A recordnumber_C value value value value; datenum_B recordnumber_C value value value value; datenum_C recordnumber_C value value value value];
matrix2 = [datenum_A recordnumber_C value value value value; datenum_B recordnumber_C value value value value; datenum_C recordnumber_C value value value value; datenum_D recordnumber_D value value value value; datenum_E recordnumber_E value value value value; datenum_F recordnumber_F value value value value];
In this case, I would like to remove the last three rows of data from matrix2 becasue the matching datenum and recordnumbers are not in matrix1.
The goal is to have two matrices that are exactly the same row count.
Any help would be greatly appreciated.

댓글을 달려면 로그인하십시오.

### 채택된 답변

the cyclist 2019년 7월 26일
편집: the cyclist 2019년 7월 26일
Sounds like you need the ismember command, possibly with the 'rows' argument.
The exact thing you want to do (matches only in first column, or in both?) was not quite clear to me. But you'll need something like
tf = ismember(matrix2(:,1),matrix1(:,1));
to identify the elements of the first column of matrix2 that are also in matrix1.
##### 댓글 수: 2없음 표시없음 숨기기
Eric Escoto 2019년 7월 26일
Hi Cyclist,
To clarify, I can use either datenum or a combination of datenum and record number. However, it is much simpler to just use datenum.
Your method produced a logical and let me know what rows are or are not similar. How can I now remove these rows from the longer matrix in question?
Eric Escoto 2019년 7월 26일
Ah, I think I got it.
I used:
tf_1 = matrix2(tf, :);
This seemed to have produced the correct size matrix matching matrix1.
Thanks for the help!

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

R2019a

### Community Treasure Hunt

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

Start Hunting!

Translated by