How to make an array with specific matrix values
이전 댓글 표시
Hello,
I have a matrix for example like this:
[1 2 3 4 5 6 7 8 9 10;
2 2 3 3 4 4 3 3 2 2]
The first column represents time, the second ID of time. I need to make an array where there is first time value from the first group of ID of time for each groups!. So the result looks like this: [1 3 5 7 9] Unfortunately unique function is not helpful in this case.
Thank you
댓글 수: 1
Jan
2018년 2월 22일
Do not post multiple threads for one problem. See https://www.mathworks.com/matlabcentral/answers/384215-how-to-make-array-with-first-values-of-matrix
채택된 답변
추가 답변 (2개)
idx=[(diff(A(:,2))==0);false];
A(idx,1)
댓글 수: 5
Jan
2018년 2월 22일
boolean is not useful here, because diff(A(:,2))==0) is a logical already. By the way: boolean is a MuPAD command, better use logical for Matlab arrays.
Birdman
2018년 2월 22일
I edited it, thanks. :)
Jan
2018년 2월 22일
@Birdman: diff(A(:,2))==0 is a logical already, because it is the result of a comparison operator. Then there is no need to cast it to a logical.
Birdman
2018년 2월 22일
Thanks again Jan :) I am learning from you.
Jan
2018년 2월 22일
Fine :-) And perhaps some readers in the forum will learn from all these discussions also. I have learned today, where the boolean function belongs to, because I did not know it before.
KL
2018년 2월 22일
I assume you have a matrix of two columns,
A = [1 2 3 4 5 6 7 8 9 10;2 2 3 3 4 4 3 3 2 2]';
A(diff(A(:,2))==0,1)
ans =
1
3
5
7
9
카테고리
도움말 센터 및 File Exchange에서 Common Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!