Find and remove a value from an array

Hello! I'm trying to find in an array 'done' the position of a value 'next' without the use of a loop. Then, in this array i want to remove from that position found, the existing element.
out=find(done==next);
done(out)=[];
I tried it this way but is doesnt seem to work. Would you find an arror or recommend another way?

 採用された回答

Robert U
Robert U 2020 年 1 月 13 日
編集済み: Robert U 2020 年 1 月 13 日

0 投票

Hi Zenia Askar,
Assuming the content of your variables 'done' and 'next' are numeric your code cannot remove a single value from the matrix without destroying the matrix structure. You should apply logical indexing rather than using 'find()'.
done(done == next) = [];
The result does not represent the matrix structure anymore but is a vector then. To omit that you can place a NaN-value instead.
done(done == next) = NaN;
Kind regards,
Robert

1 件のコメント

Zenia Askar
Zenia Askar 2020 年 1 月 14 日
Robert, that was really helpfull thank you

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

質問済み:

2020 年 1 月 12 日

コメント済み:

2020 年 1 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by