Tôi có hai vectơ trong MATLAB, A và B. B chứa một số chỉ mục (1 đến cuối). Tôi có một chỉ số ngẫu nhiên, R (trong phạm vi của các chỉ số vector). Tôi muốn viết một hàm (hoặc báo cáo) để lựa chọn A [z], nơi z là số gần nhất (tức là index) cho R mà không được bao gồm trong B.Cách tìm chỉ mục gần nhất với chỉ mục được chỉ định trong Matlab
Ví dụ:
A = [2 3 6 1 9 7 4 5 8]
B = [3 4 5 6 7 8]
R = 5
Hàm phải trả về 3, vì chỉ số gần nhất là 2, bởi vì 5-2 < 9-5 và 2 không nằm trong B, do đó A [2] = 3;
Cảm ơn
Cảm ơn sự giúp đỡ của bạn. Tôi nghĩ tốt hơn là nên sử dụng settdiff thay vì setxor. Tôi đã thay đổi mã của bạn sau đây. Hay cho tôi biêt y kiên của bạn. – remo
Tôi đang sử dụng MATLAB 2012. Như đã nêu trong tài liệu setxor, setxor (A, B) = A-B union B-A (sự khác biệt đối xứng). Tuy nhiên, trong trường hợp của chúng tôi, tôi nghĩ rằng nó không tạo ra bất kỳ sự khác biệt nào, bởi vì B chứa các số trong phạm vi. – remo