如题,我有两个矩阵A=[1,1,0,1;23,9,50,2;45,17,100,5;67,25,150,6]
B=[3,7,35;5,8,26;15,18,93]
其中矩阵A的四列分别为x,y,z,t。B的三列分别为x,y,z。我想在矩阵A中搜索符合这样条件的数据:即矩阵B的每一行的x,y,z与A的每一行x,y,z分别相减的绝对值的和的最小的数,并输出A矩阵中该行的数据,例如,C=[1,1,0,1;1,1,0,1;45,17,100]

 Réponse acceptée

0 votes

>> A=[1,1,0,1;23,9,50,2;45,17,100,5;67,25,150,6];
B=[3,7,35;5,8,26;15,18,93];
[m,~] = size(B);
[~,k] = size(A);
C = zeros(m,k);
for i = 1:m
    [~,index] = sort(sum(abs(A(:,1:3)-B(i,:)),2));
    C(i,:) = A(index(1),:);
end
>> C
C =
    23     9    50     2
     1     1     0     1
    45    17   100     5
以上代码可以实现你需要的功能,还有,你的结果算错了,不信你再算一下

Plus de réponses (0)

Catégories

En savoir plus sur 稀疏矩阵 dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!