用一个矩阵对另外一个矩阵进行筛选。

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

 采纳的回答

>> 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!