matrix unions

3 visualizzazioni (ultimi 30 giorni)
Trader
Trader il 26 Mar 2012
if array A = 10 x 1 with numbers in it and array B = 4 x 1 with numbers in it. How would you create an array C which equals the size of A and is filled with NaN except for the points where A and B equal the same value.
A = [ 1 2 3 4 5 6 7 8 9 10]
B = [ 1 3 5 7]
I would like:
C = [1 NaN 3 NaN 5 NaN 7 NaN NaN NaN]
thanks for the help

Risposta accettata

Geoff
Geoff il 27 Mar 2012
You can use a real handy function called ismember() to test elements of A against elements of B. Then it's just a matter of indexing:
in = ismember(A,B);
C = nan(size(A));
C(in) = A(in);

Più risposte (1)

Andrei Bobrov
Andrei Bobrov il 27 Mar 2012
C = A
C(~ismember(A,B)) = nan
OR
C = A
C(setdiff(A,B)) = nan

Categorie

Scopri di più su Numeric Types in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by