Matlab 什么?4700不能被3整除,我也不知道B发生了什么。我也不理解关于K的部分。请给我们看看上面例子的输出。@brodroll我想你应该把A中的元素按大小分组numel(A)/numel(B),这样总共有numel(B)组。这和我得出的结论是一样的!tl;博士
Matlab 什么?4700不能被3整除,我也不知道B发生了什么。我也不理解关于K的部分。请给我们看看上面例子的输出。@brodroll我想你应该把A中的元素按大小分组numel(A)/numel(B),这样总共有numel(B)组。这和我得出的结论是一样的!tl;博士,matlab,matlab-figure,matlab-guide,Matlab,Matlab Figure,Matlab Guide,什么?4700不能被3整除,我也不知道B发生了什么。我也不理解关于K的部分。请给我们看看上面例子的输出。@brodroll我想你应该把A中的元素按大小分组numel(A)/numel(B),这样总共有numel(B)组。这和我得出的结论是一样的!tl;博士我们得到的不是你现有例子的输出,而是一堆文字。我现在对这个问题做了修改,现在它更清楚了。请帮忙。这种方法被称为指纹技术的K均值法。 A= 10 20 30 50 40 60 45 30 15 B
什么?4700不能被3整除,我也不知道
B发生了什么。我也不理解关于K
的部分。请给我们看看上面例子的输出。@brodroll我想你应该把A
中的元素按大小分组numel(A)/numel(B)
,这样总共有numel(B)
组。这和我得出的结论是一样的!tl;博士我们得到的不是你现有例子的输出,而是一堆文字。我现在对这个问题做了修改,现在它更清楚了。请帮忙。这种方法被称为指纹技术的K均值法。
A= 10
20
30
50
40
60
45
30
15
B=28
22
26
A= [10,20,30;50,40,60;45,30,15;....;9,16,19]
B=[12,15,18;25,32,38;....;7,18,22]
clear all;
A = [10 20 30 50 40 60 45 30 15];
B = [28 22 26];
k = 1;
for ai = 1:numel(B):numel(A)
A2 = sort(A(ai:ai+numel(B)-1));
for ki = 1:k
minA = A2(ki);
locMinA = find(A(ai:ai+numel(B)-1) == minA);
fprintf('ai = %d\tki = %d\tmin = %d\tlocation = %d\n', ai, ki, minA, locMinA);
end
end
ai = 1 ki = 1 min = 10 location = 1
ai = 4 ki = 1 min = 40 location = 2
ai = 7 ki = 1 min = 15 location = 3
ai = 1 ki = 1 min = 10 location = 1
ai = 1 ki = 2 min = 20 location = 2
ai = 4 ki = 1 min = 40 location = 2
ai = 4 ki = 2 min = 50 location = 1
ai = 7 ki = 1 min = 15 location = 3
ai = 7 ki = 2 min = 30 location = 2
[val loc]=sort(reshape(A,length(B),length(A)/length(B),1))
getk = @(x,y)(x(1:y,:)(:));
k=2; % Example value of k
getk(val,k) % Minimum values vector
getk(loc,k) % Minimum location vector