Can I replace the row of the matrix when its value is equal to the previous row?

2 ビュー (過去 30 日間)
Hello,
I have a following matrix as a sample/
A = [1 2 3; 4 5 6; 1 2 3; 1 2 3];
And I would like to replace the value of entire row if the row is equal to the previous row.
So in this case,
B = [1 2 3; 4 5 6; 1 2 3; 0 0 0]
Because the last row is equal to the 3rd row of the matrix.
Is there anyway I could do this?
Thank you.

採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 12 月 5 日
A = [1 2 3; 4 5 6; 1 2 3; 1 2 3]
A = 4×3
1 2 3 4 5 6 1 2 3 1 2 3
diff(A,1)
ans = 3×3
3 3 3 -3 -3 -3 0 0 0
replace_row = [false; ~all(diff(A,1),2)]
replace_row = 4×1 logical array
0 0 0 1
A(replace_row, :) = 0
A = 4×3
1 2 3 4 5 6 1 2 3 0 0 0

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMultidimensional Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by