0

K=[1 1 1 2 1 2 10 4 2 10 0 5 1]是一个向量,我想将第 7 个元素的值K与该值的邻居进行比较,其中邻居是每边该元素旁边的 6 个元素。所以对于 K,第 7 个元素是 10,邻居是 1 1 1 2 1 2(左邻居)和 4 2 10 4 5 1(右邻居)。如果第 7 个值与其每个邻居之间的差值大于 a一定的阈值然后我会做一些事情,例如X = 1,如果不是那么我会做另一件事,例如X = 2。因此,在下面的示例中,我将阈值设置为 3,因此对于 K,第 7 个元素的值为 10,并且它与其相邻的两个 10,5 之间的差值大于阈值 3,因此 X 将为 1。我是比较 X=1 因为有几个元素有差异。超过 T inc 第 11 个元素0,但如果K=[8 7 8 9 7 7 10 7 7 8 0 9 8]然后 X=2 尽管有差异。它和第 11 个元素之间是 >T 但这是因为第 11 个元素为零0

我正在使用与我在此处找到的其他问题相关的以下脚本链接

N = 6; % reference index
T = 3; % threshold

V = K;

% formulate if-statement to check for values
% below/above index N and check if any difference
% exceeds the threshold
% the or-statement (because it does not matter if the 
% threshold is exceeded above index N or below)
% is expressed as |

if any((V(1:N-1)-V(N))>T) | any((V(N+1:end)-V(N))>T)
    X = 1;
else
    X = 2;
end
4

1 回答 1

1

嘿,我认为您应该检查matlab 的diff in-build 功能,它可以解决我的问题。

于 2014-05-05T10:51:06.310 回答