我在 MATLAB 中有两个向量,A 和 B。B 包含一些索引(从 1 到末尾)。我有一个随机索引 R(在向量索引的范围内)。我想写一个函数(或语句)来选择 A[z],其中 z 是最接近 R 的数字(即索引),但不包含在 B 中。
例子:
A = [2 3 6 1 9 7 4 5 8]
B = [3 4 5 6 7 8]
R = 5
函数必须返回3,因为最近的索引是2,因为5-2<9-5且2不在B中,所以A[2] = 3;
谢谢
最佳答案
改进 jacob 的答案,这是正确的解决方案:
[result, z] = min(abs(R - setxor(B, 1:numel(A))))
在您的情况下,生成 z = 2
和 result = A(2) = 3
。
关于arrays - 如何在Matlab中找到最接近指定索引的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13228152/