How to set bottom repeating elements in matrix to NaN?
2 次查看(过去 30 天)
显示 更早的评论
I have matrix of large size and I need to change the bottom repeating elements to nan. For instance:
a = [ 1 2 3 2 1 3
3 1 1 3 1 2
1 2 3 3 2 1
1 2 1 2 1 3
1 2 3 1 2 1];
In this matrix, I want to change the bottom repeating numbers. If the numbers are repeating on top, I don't want to do anything to them. Just want to replace the bottom repeating number by NaNs. Any help will be greatly appreciated.
Thank you.
7 个评论
Dyuman Joshi
2022-6-16
移动:Dyuman Joshi
2023-8-26
Okay. Just a note - If you want a general answer, do mention information explicitly. Answers will always be tailored according to the information you give. So limited data results in particular answer rather than a general solution.
I could only understand what you want to obtain after you gave another example above. Nonetheless, you got your answer.
采纳的回答
Voss
2022-6-16
a = [ 1 2 3 2 1 3
3 1 1 3 1 2
1 2 3 3 2 1
1 2 1 2 1 3
1 2 3 1 2 1];
to_nan = cummin(a(1:end-1,:) == a(end,:),1,'reverse');
to_nan = to_nan([1:end end],:);
a(to_nan) = NaN
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!