więc mam dużą matrycę (4091252x2), który wygląda mniej więcej tak:Mapowanie wartości macierzy?
439105 1053224
439105 1696241
439105 580064
439105 1464748
1836139 1593258
1464748 439105
1464748 1053224
1464748 1696241
1464748 580064
580064 439105
Zasadniczo, matryca reprezentuje połączeń wykonanych z jednej osoby na drugą, reprezentowanych przez PersonID (439105 wywołań 1053224). Co chcę zrobić, to skalować tę macierz w taki sposób, aby najmniejsza ID osoby = 1 i 2 dla następnej najniższej ID osoby, 3 dla następnej najniższej ID osoby po itp. Na przykład, jeśli macierz wyglądała następująco:
110 503
402 110
300 900
300 402
402 110
chciałbym to odwzorowane na:
1 4
3 1
2 5
2 3
3 1
problemem jest to, że jestem początkujący Matlab, a ja nie mam pojęcia jak to zrobić. Spojrzałem na reshape i sub2ind, ale tak naprawdę nie sądzę, że to, czego szukam. Jak mam to osiągnąć w Matlabie?
Każda pomoc będzie bardzo ceniona, dzięki!
To jest bardziej eleganckie rozwiązanie. Dla mojego własnego kodu, staram się zrobić "trik" przypisywania najpierw, a następnie używania indeksów liniowych, tylko dlatego, że unika się używania zmiany kształtu, która czasami rani moją głowę. +1 – Tony
@David Thanks !! Co jednak oznacza "~"? Czy to też zadziała, jeśli to samo połączenie zostanie wykonane dwa razy? Na przykład, 402 wywołanie 110 dwukrotnie, a zatem macierz miałby dwa wiersze [402 110]? Po prostu jestem zdezorientowany, dokładnie rozumiem, jak wyjątkowe prace. – ocean800
@ David Nevermind, sam go przetestowałem i działa! Dziękuję bardzo za pomoc !! – ocean800