フィルターのクリア

Unique function doesn't work in Simulink

5 ビュー (過去 30 日間)
Andrew Poissant
Andrew Poissant 2017 年 9 月 22 日
コメント済み: Andrew Poissant 2017 年 9 月 25 日
I have a 624x2 matrix that needs to have repeated ordered pairs removed. The first column represents x values and the 2nd column represents y values. There are some repeating pairs and I need to remove them in the matlab function block in Simulink but when I execute the "unique" function in Simulink I get an error saying: An error occurred while running the simulation and the simulation was terminated Caused by: The second operand is not sorted in ascending order. Use SORT first.
How do I get around this error? If I use "sort" then won't I lose my ordered pairs because the two columns will be sorted independently? My highly simplified code is below.
SRM = some 624x2 matrix SRM = unique(SRM(:,:), 'rows');
  2 件のコメント
OCDER
OCDER 2017 年 9 月 22 日
That's odd, since unique(SRM, 'rows') should remove duplicate rows and sort for you.
If you need to sort by rows, use sortrows .
Andrew Poissant
Andrew Poissant 2017 年 9 月 25 日
Sortrows works well but for some reason simulink is still giving the same error even when I sort by rows. It seems like a really rigid addition to matlab. Any idea how to remove repeated rows without unique?

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

回答 (1 件)

Brian Hannan
Brian Hannan 2017 年 9 月 25 日
You can use the 'stable' setOrder argument to get around this.
  1 件のコメント
Andrew Poissant
Andrew Poissant 2017 年 9 月 25 日
I tried this, but am still getting the same error requesting that I use SORT first. I am getting an error using the following line: SRM = unique(SRM(:,1:2), 'rows', 'stable');

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

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by