减去两个元胞数组,然后将距离添加到新的元胞数组

subtract two cell arrays then add the distance to new cell array

我有两个元胞数组,我想得到两个元胞之间的绝对差异,然后将元胞添加到新的元胞数组中,例如:

A={1.1 2.1 ; 1.2 3.2};
B={1 2};

执行聚合函数如下:

d(1) =|1.1 - 1|+|2.1-2| =0.2 and d(2)=1.4

那么结果应该更新元胞数组:

A_Updated={1.1 2.1 d1; 1.2 3.2  d2};

我使用以下代码减去两个单元格:

C = cellfun((@minus),A,B,'UniformOutput',false);
C=num2cell(abs(cell2mat(C)));

如何添加它们并使用新距离更新元胞数组?

下面的代码将找到距离并更新为 required.When A 的大小是 mx2,B 的大小是 1x2。

A={1.1 2.1 ; 1.2 3.2};
B={1 2};

for i=1:size(A,1)
    d1{i,1}=abs(A{i,1}- B{1})+abs(A{i,2}- B{2});
end

A_Updated=[A d1];

更新:A的大小为mx2且B的大小为kx2时

A={1.1 2.1 ; 1.2 3.2};
B={1 2;2 1};


for i=1:size(A,1)
    for j=1:size(B,1)
    d1{i,j}=abs(A{i,1}- B{j,1})+abs(A{i,2}- B{j,2});
    end
end

A_Updated=[A d1];

更新:A的大小为mxn且B的大小为kxn时

A={1.1 2.1 ; 1.2 3.2};
B={1 2;2 1};


for i=1:size(A,1)
    for j=1:size(B,1)
        d1{i,j}=0;
        for k=1:size(B,2)
            d1{i,j}=d1{i,j}+abs(A{i,k}- B{j,k});
        end
    end
end

A_Updated=[A d1];