How to make an array with specific matrix values

32 ビュー (過去 30 日間)
Filip Konecny
Filip Konecny 2018 年 2 月 22 日
コメント済み: Jan 2018 年 2 月 22 日
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

採用された回答

Jan
Jan 2018 年 2 月 22 日
編集済み: Jan 2018 年 2 月 22 日
I assume this works:
A = [1 2 3 4 5 6 7 8 9 10; ...
2 2 3 3 4 4 3 3 2 2];
B = A(1, [true; diff(A(1, :)) ~= 0]);
(Just a combination of the answers of Birdman and KL - and a transposed input)

その他の回答 (2 件)

Birdman
Birdman 2018 年 2 月 22 日
編集済み: Birdman 2018 年 2 月 22 日
idx=[(diff(A(:,2))==0);false];
A(idx,1)
  5 件のコメント
Birdman
Birdman 2018 年 2 月 22 日
Thanks again Jan :) I am learning from you.
Jan
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
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

カテゴリ

Help Center および File ExchangeNumerical Integration and Differentiation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by