如题,我有两个矩阵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]

 채택된 답변

0 개 추천

>> 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
以上代码可以实现你需要的功能,还有,你的结果算错了,不信你再算一下

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 稀疏矩阵에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!