Mam dwa wektory w MATLAB, A i B. B zawiera niektóre indeksy (od 1 do końca). Mam losowy indeks, R (w zakresie wektora wskaźników). Chcę napisać funkcję (lub oświadczenie), aby wybrać [Z], gdzie Z jest najbardziej najbliższy numer (tj index) do R, które nie są ujęte w B.Jak znaleźć najbliższy indeks do określonego indeksu w Matlab
Przykład:
A = [2 3 6 1 9 7 4 5 8]
B = [3 4 5 6 7 8]
R = 5
Funkcja musi zwrócić 3, ponieważ najbardziej najbliższy indeks wynosi 2, ponieważ 5-2 < 9-5 i 2 nie ma w B, więc A [2] = 3;
Dzięki
Dziękuję za pomoc. Myślę, że lepiej jest użyć settdiff zamiast setxor. Zmieniłem twój kod w następujący sposób. Proszę dać mi znać swoją opinię. – remo
Używam MATLAB 2012. Jak podano w dokumentacji Setxor, setxor (A, B) = A-B union B-A (różnica symetryczna). Jednak w naszym przypadku myślę, że nie powoduje żadnej różnicy, ponieważ B zawiera liczby w zakresie. – remo