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