if condition finding same numbers in consecutive rows

Hi guys I have a table with 120 rows and 5 columns. I want an if condition: if the table contains at least two consecutive rows in columns 2,3,4 and 5 which have the same number then write similar table, else do nothing.
Thanks for your help

1 件のコメント

Jan
Jan 2015 年 3 月 13 日
What exactly is a "table"? On paper, Excel-File, csv-file, matrix in Matlab, a table object? Does "write a similiar table" belong to the problem and if so, what exactly is "similar"?

サインインしてコメントする。

回答 (3 件)

Chad Greene
Chad Greene 2015 年 3 月 13 日

1 投票

You can use diff.
x = [4 5 2 17 17 3 4 2 2 4];
ConsecutiveNumbersStartAt = find(diff(x)==0)

1 件のコメント

AA
AA 2015 年 3 月 13 日
Good idea but i need it across columns and rows, ie.
55555
55555

サインインしてコメントする。

Jim Hokanson
Jim Hokanson 2015 年 3 月 13 日
編集済み: Jim Hokanson 2015 年 3 月 13 日

0 投票

sum the differences, but make sure to take the absolute value so that you don't get positives and negatives that cancel out
find(sum(abs(diff(x,1,1)))==0)
Chad Greene
Chad Greene 2015 年 3 月 13 日

0 投票

You can use the index outputs of unique with the 'rows' option. That'll give you indices of all the unique rows. Then the redundant rows are what's left over.

1 件のコメント

AA
AA 2015 年 3 月 14 日
編集済み: AA 2015 年 3 月 14 日
I tried it but it is not what i wanted. Consider the following numbers
2 7 6 7 4 3 7 8 8
5 7 7 7 4 5 7 8 3
3 3 3 3 3 3 3 3 3
I want to find the last row where all the values across all columns are the same, i.e. lots of 3s. Plz help

サインインしてコメントする。

カテゴリ

質問済み:

AA
2015 年 3 月 13 日

編集済み:

AA
2015 年 3 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by