Matlab实现寻找最小角度的向量

寻找对应于每个a的行向量的角度最小的b中行向量;

找到a的行向量对应于b中角度最小的行向量。

结果bIndex为a的每一行对应的b的行数。

a = rand(1000,8);
b = rand(80,8);
abyReshape = reshape(a.',1,size(a,2),size(a,1));
abyReshapeRep = repmat(abyReshape,[size(b,1),1,1]);
bRep = repmat(b,[1,1,size(a,1)]);
AngleCacu__col = acosd(dot(abyReshapeRep,bRep,2)...
    ./(vecnorm(abyReshapeRep,2,2).*vecnorm(bRep,2,2)));
[~,bIndexTemp] = min(AngleCacu__col,[],1);
bIndex = reshape(bIndexTemp,[size(a,1),1,1]);

版权声明:本文为cnmlgb00100原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。