1
$\begingroup$

I'm fairly new to Mathematica, and I've finally stumbled upon something that's beyond my googling powers.

I have a list of pairs, where each pair contains in its first entry a matrix and in its second some information about how it was generated. It looks like this:

Mathematica output of list

You can review the full list using:

list=Uncompress@"1:eJy9nU1y3DYQhTljKvfIAVIlS6dwVVY+Qhau8ioL52C5oJ1YHFlNQt0A+3uY9sIui+\
Y8o8n3A6CH/P2vvz9/+feyLN/WZVn+/Prtny/X5eTfPv08bfm4/f7oHHm8Hf+y7o98/\
fnnsvvt5Z+cR9z+uXPO7rMitODMk+N7AuO7QsTHTy8/++Oj+595PeRgXmhNt3P++/nLq/\
US1PSyCDXtjjAs6oUW9Qb2+sHhoUcP80qL+lLPW/Gcn2/FjtBIUV+H4VZ1f+wpRKU3K6L/\
B1pVRP8Pyq2K6P9BqSik/0prup2Tpf+q1JTRf6VFFej/QIuK6P9AiyrR/\
0G7WZNlNZfC96rD/6isR0+\
cPkC3qIbJNTXkhy86ZsakqEb0c6J6tH4uqmR8Iv89nwpE1eBITe2GPCeqx8Ep/\
PesyldVw6xlP3b/4Jw++yX3h+yX/J+xH9s/Yr9k/4j9M9w/y37N/bPsn+L+\
SfZj7x9U9dGvqsnpzKpun+XQ/yjes6s6HOLdRNWFxO4fnLNLsBHa/\
UQ1HuEdRNV3KvNFUtRIVK1kEdp8Uf01g40Qi+mP3R/RH7u/Qn9x+k/oj+0/OKdPf8n+\
If1xAOD0x/6P6I/9H9NfnPknS2rEx/dpFKmckh5l5i4DbGtqkKKk+\
tHYpYbpGylqtEplxY7QVElFQ+Ts94yqI6km4KSqQW1CST3aBR9ga1M9STXMWv5rc/8s/\
8W5P+E/9n6B/9j8Ef+x+Sv8F92f8F9z/yz/J7h/mv+S/4v7/leKeH7dyMAuEiLe+\
88h9iUu2jO6LKyitxN/EDRQzVs9vhM0UEllx89cn2A+cUxyj24f/MwxSW0x94/xuIL7x+\
RYwf1jrJoZOFwV3zDN/dEob/ctwaSVfXq9bwlmsRpYBqhTA0sCdWpgSQDdt0lI8yx62+\
bXkI5z5PtgDjoBiEFH653OjMe8GVQ1RNtC67WHRuJAhPaSRzYR7TcAcAHgDQBzMZ9GmFgA\
YsznEWatAEh5AAqAlAjkZgDuz7gZYB7k7nK6w5QiQQ/z5qLP/\
aaAOkXQIgFTBC0SMEXAkWCAea41gGF2uDIAFYr7ynwACqrb369zUoGZCajrzv2zaCQVmPt\
n0e4gr6faAgDkE4ek6vrMIYsFAGcCRQBwKFAEQFwpGASuQY8Av6DBGnMfE9f2l/\
UDzFpFwKGAKwLOBFwRxFWCJGTTL3APSHdXZFEKqzYNJB3TnPH48+\
0Duxv4oKYh2vaBP4btApPQtjp976Fx7nue1ZGbpk9gLuTTAJLPtULI5wFkLffFBQLCfXF9\
gHAfB4HDfdn53ziYM5JAZ5vCHaeWBGLMt92ECLNWDaQkwNRASgJMDaQkIHYOvJ8gdm3kzX\
88i3QmlQZ0yaMdyJ4f3xUiyk8MSNZ0O4c/\
MWD2CMOiWhpIQnY0Z3do0ECQLKr4xAA2Qreq+2ODJwZgeuDmgQr6Wwyoor+\
lgDr6WwqooL/5fxn9zf7r6G/+X0F/s/5K+\
pv7o0uZLKu5FL5XHf6ffGLA7AG6RT1OyOdqaufLn9j+I021DBqhzdfU2xF3d1B1/\
1BygqmV4ZGibjek04+5fVZ0o06xf68RazjEWvpj+1+CW/XkIwPq6C8FAER/bP+I/pL9I/\
qr7o/or9l/lv5T7D9Lf+z+B5KfxjRBxWXlzwwQyso7Au6hqoNnBsxU1ZeD/\
baAu6jq4JkBSHVCCTjVHEBkdXlfVJPbCE2TVfzMgDr6Y/\
sXnxlQSH9xAYDQHweAZQH0lwKA/MyAMvrjAIDojwMApr8490+WtOkBmLlO5ZS02f6/\
xwAH2//zJLXHjaYLYJKmWoKN0GZr6v6Yu/8n2n9ED38dt2kGIPS/vjsnXKdu+gDw+\
Pz03x9fLf21uT9/ZEAZ/bH1K/TH5o/oj81for9o/4D+mvtn6T/B/\
ZP0l9xf3Pdf738NDewiIeK9f4Ao7/3PxvSE3CBpYdUGgCTkTlp5AwDHzMi5gZLaHj+\
5J74RKr1xxT6AKjmwQFAlB5YH6uTA4kCZHFgmKJMDCwR1cmCRoFAOLBlUyoGlgxxqekHJz\
AsUNmwsH6OBit6+1IbQSCWzq0jmyaSSEdoyRCOVjNCirwcaEKlkdunYgEgl7VOdMY93/\
0klHbTrEK2M3dToGbupyTN2U4Nn7F5pJRG7V+medNC67F5pJRG7qZUzdlMPZ+\
ym3j1nV59hhhHw3Nf9BVC+uZ8E3U8VwroPNvfvAenufYkT/A5kXFk8wz/\
MiLxD4TCpyQ9mvZ1rSY1+MOs9tctfJwd4bq/\
IAZ7eK3IgzvCJHKzKTcvkYFXuWnnHv0wO8AQfywGe3WM5wOkALQ81u/4VV7LZ+\
geQ6ac4NFv/83S2R5Jm679E3JsGgLmYw3FyMYh4cmr7v0LYmx4AXtjOc9cGXQBlciAu/\
GPIWjnAwUCRg5WWVpCDdcJdm5WDVblrxXaAMjlQV/6JHEjpQOwKeLj/\
pTSwi4SIuwJyiOnVJhsaqOjtRP4egSTaVg/+\
HoHktRtx4lQXAMFU3yNAMNX3CGBe4BaAKu5bEKjivuUAgCi3AKBR3u5bgkkrK79HoE4NLA\
jUqYElgTo1sCSA7tskpHkWLm36chomLm36chomiQNmjU5MeDnYbwkgaMu7c862BBC0C0ET\
BYC/R6BE0A2T21ZW0A2zVgBwHhAEACcCQQCkTKC+\
R6Ag3BmiFrXIGIvVAMcBQQ1wHBDUAMeBQW3PNRUwzA5PBqBYD+\
SmArJA4Lhm1GpjRgLqqr5DIIkmvkNgrrSeaiLgMx/\
8DgEAqb5DoE4A1DyABEALBHIbwT3C1qCNgF9Q/\
g4BHrb4OwTKFEEKBeo7BMoUQVwhSEI2nQQV17LpJKi4lk0nAfHnaA7tLKk3LQQEbSFoJA1\
k23ybtoFps56O3DR9AxVK3vQNlCh50zdQRn5xtwBD1pIfJ4HDFTudPpq2gZJs17QN1GS7p\
m+gTA/EBQKiB9p2AdMDKQyIjQO/\
UUTcOIARceMAQJQfJ4BGuX1wdvPQUgHAhJuHlg2SmB2hPeihg2nhgGCqrQQEU20lwEzBrQ\
RVamDZoEoNLBrUqYFFgzo1sGhQpwaWDOrUwKJBnRpYNqhTA8sGOUz2deMFVlV9mEASTXyY\
QBLt7Wzv55cAjSYBs5w0Gqnkmyym0UglxYcJEDT+\
KgGC5rRkjtHK2E19Xn2YQAW7qb8zdlNnZ+ymns7YTd1cfZhABbupgzN2U+\
9Wtv0WWE9p22+BZZW2/RZaXbQ4ZL4gFDe5OGSYuLZs2w9P7w8zBe+Ql3PNBElpd/\
MW3AgAINVGgDpFwLN7RRHwBF9RBHGOTxSBBgFFEWgcUBSBhgJBEfAMnysCnuBzRcAZYbgu\
5UE2jQAV17JpBKi4lk0jwDypPSqiA6oFhGCg51CFdSlXbM+\
hcknw1Havww6ilBGyq8ZNdwBGxG8WKNMDcfkfQ9bqAQ4Hih5o8YDqgRYQqB6IEQHogZQQk\
B5IAQHpwTEf/A8UxMr9";

So for example, the first pair is {{{1,0},{0,1}},{0,0,0,1}}, the identity matrix with some info. Now I want to delete pairs where the first element, the matrix, is duplicated. I have Mathematica 10, and thought of using DeleteDuplicatesBy and First, as in the example given in the description of DeleteDuplicatesBy, but was unsure exactly how (typing DeleteDuplicatesBy[list,First] doesn't run). Could anybody correct me please?

Also, Mathematica kindly suggested to me that using First/@list would give me all the matrices (as opposed to First[list] which gives me the first pair). I don't exactly know how this syntax works either, so if somebody could explain that too it would be great.

$\endgroup$
13
  • $\begingroup$ DeleteDuplicatesBy[elms, First] (elms is my simple list of pairs)... and it works. What you mean by "doesn't run"? $\endgroup$
    – m0nhawk
    Mar 30, 2015 at 10:05
  • $\begingroup$ @m0nhawk If I run DeleteDuplicatesBy[elms, First] I just get back (as output) DeleteDuplicatesBy[{{{{1, 0}, {0, 1}}, {0, 0, 0, 1}}, {{{1, 1}, {0, 1}}, {0, 0, 1, 1}}, {{{1, 2}, {0, 1}}, {0, 0, 2, 1}}, {{{0, -1}, {1, -1}}, {0, 1, 0, 1}}, ..., {3, 5, 2, 6}}}, First] $\endgroup$
    – ShakesBeer
    Mar 30, 2015 at 10:08
  • $\begingroup$ Please post data/code as text, not (only) as images. $\endgroup$
    – Yves Klett
    Mar 30, 2015 at 10:11
  • $\begingroup$ @YvesKlett Is there a way to spoiler it? There's quite a bit... $\endgroup$
    – ShakesBeer
    Mar 30, 2015 at 10:14
  • $\begingroup$ @user3006690: Use Compress on your data and post the full result. It should be much shorter. Place a hint to use Uncompress on it in your question, also. $\endgroup$
    – Jinxed
    Mar 30, 2015 at 10:17

1 Answer 1

4
$\begingroup$

Using the compressed list you supplied:

list=Uncompress@"<...>";

Length@list
(* 432 *)

Length@(dedup = DeleteDuplicatesBy[list, First])
(* 54 *)

Here is the result:

dedup=Uncompress@"1:eJytmEFuwzAMBGXZ6D/6ib6ipz6hBwM59ZB+\
324dHUTY3qWsNQPEaBQoI66WpNT375+v+SOl9Jy2x+fj+Tvnq58ew/bHY3unw/hrqHw5T+\
dxewynmW3aec4FGpnZpmWFlgVamfi3vdAqyjigVflDaYnENiRRSZfGlKzy99JeIOSSMs5i\
y6qS9qtgnO1bDUuiASXL+\
OrRZE92KGl2lD3JaEDJvflDaUBJoylKWhZfqyWWapGeZLXEUk2mddSSfWJLtPV6LTGaXEu\
AkokoaSJGKtmmRSrZpoXXErBvZhBFSZZvzJNmEJkGXMI8ubdj1CnIziuMFn4uAbTxlktY7\
2aeHO+7BOwb8+\
R43yUd3dRokadX1k2NJvc3VpXd0ytZp0srK1wUWhZoq3yeVGJbZJoSG6uThQaye38FiKIV\
hUePpsTGencmLjmcS4JoY5Mmx8ay2+2mSmy2P700JTbbn97ercQ2yjR531jvBrcO62+\
yJwHN6iejybUEZMBKXHLob0G0pUmTYwP5VsbbleucO+19A/0tVa+\
6tUShgd5tq3Bd0kkb8Bx6Ez7sm0ID2d3uAeUxCUqCfGtngEKrqXPx1nHo3W99tLrWbloWa\
Kv3fy73HqDEtngZ4NJqbP8TQbe7";

If you do not get the same result, please restart Mathematica first to get rid of any previous defines you may have made in your session.

Regarding /@: Please review the documentation on Map.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.