maintaining relative positions of each elements of the resulting array after applying Union()
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Aditya Tan
il 29 Dic 2018
Commentato: Aditya Tan
il 3 Gen 2019
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
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.
Risposta accettata
Walter Roberson
il 29 Dic 2018
x3 = [x1.'; x2.'];
mask = [true(1, length(x1)); x3(1,:) ~= x3(2,:)];
x3 = x3(mask);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Get Started with Aerospace Blockset 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!