Как вставить NaN в массив, если в нем отсутствуют значения, присутствующие в другом массиве? - PullRequest
1 голос
/ 06 ноября 2019

Предположим, у меня есть два массива:

A = [850;950;1000;1050;1100];
B = [850;950;1000;1100];

Здесь B отсутствует значение 1050, которое присутствует в массиве A. Как позже я хотел бы сравнить A и B логически, я бы хотел заполнить это недостающее место NaN, что дает мне

B = [850;950;1000;NaN;1100];

Какой самый быстрый способ сделать это в Matlab

1 Ответ

2 голосов
/ 06 ноября 2019

Я бы создал копию A и исключил бы любые значения, которые не являются членами B. Это проще, чем вставлять NaN в правильные места B ...

C = A;
C( ~ismember( A, B ) ) = NaN;

При желании вы можете назначить B = C в конце.

В качестве альтернативы вы можете избежать копирования всего A и просто присвоить индекс переменной, это просто предпочтение ...

idx = ~ismember( A, B );
B = A;
B( idx ) = NaN;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...