Azzera filtri
Azzera filtri

maintaining relative positions of each elements of the resulting array after applying Union()

1 visualizzazione (ultimi 30 giorni)
Hi,
I have a question regarding Matlab's Union.
Suppose I have the following two string arrays.
x1 = ["assets"; "fixed asset"; "total assets"; "short-term bank loans"; "revenue"; "equity"];
x2 = ["assets"; "fixed asset"; "total assets"; "long-term bank loans"; "revenue"; "equity"];
If I do this
x3 = union(x1,x2,'stable')
Then the result is
x3 = ["assets"; "fixed asset"; "total assets"; "short-term bank loans"; "revenue"; "equity"; "long-term bank loans"]; % result
But what I want is
x3 = ["assets"; "fixed asset"; "total assets"; "short-term bank loans"; "long-term bank loans"; "revenue"; "equity"]; % what I want
Any help or suggestions are appreciated. Thank you very much.
Aditya
PS This is not a homework problem.
  2 Commenti
Walter Roberson
Walter Roberson il 29 Dic 2018
union is a set operation so if duplicates appear later then they would have to be eliminated .I suspect that is not what you want .
II suspect what you want is "Compare corresponding pairs of elements .if they are the same use one copy . If they are different use the first then the second ."
Is that more accurate ? If it is then it can be done efficiently with some logical indexing.
Aditya Tan
Aditya Tan il 29 Dic 2018
Hi Walter,
I suppose yes. I had thought this operation can be done efficiently with Union. The resulting elements from the Union() operation are correct--it's just their positions that are not.
Then, are you suggesting to achieve this with a loop instead? Thanks.
Aditya

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 29 Dic 2018
x3 = [x1.'; x2.'];
mask = [true(1, length(x1)); x3(1,:) ~= x3(2,:)];
x3 = x3(mask);

Più risposte (0)

Categorie

Scopri di più su Get Started with Aerospace Blockset in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by