Matlab 比较两种不同大小矩阵的元素,得到相应的指标

Matlab 比较两种不同大小矩阵的元素,得到相应的指标,matlab,matrix,genetic-algorithm,Matlab,Matrix,Genetic Algorithm,如何比较不同大小的A、B矩阵,必须逐个比较元素,并得到C矩阵中A或B的相应指标 A={2 4 1} B={8 7 2 5 4 6} 输出:C={12};或C={36} 在这里,它与我所问的是半等价的: for i=1:s for j=s+1:nGen if(tOS(p,i)==tOS(p,j)) f1=f1+1; ti(1,f1)=i; end if(tOS(p+1,i)==tOS(p+1,j

如何比较不同大小的A、B矩阵,必须逐个比较元素,并得到C矩阵中A或B的相应指标

A={2 4 1}

B={8 7 2 5 4 6}

输出:C={12};或C={36}

在这里,它与我所问的是半等价的:

for i=1:s
    for j=s+1:nGen
        if(tOS(p,i)==tOS(p,j))
            f1=f1+1;
            ti(1,f1)=i;
        end
        if(tOS(p+1,i)==tOS(p+1,j))
            f2=f2+1;
            ti(2,f2)=i;
        end
    end
end
但是我在Matlab中寻找更短、优化的bult函数,我假设你想比较矩阵A的每个元素和矩阵B的每个元素,你的问题不清楚

你可以很简单地用它来做这件事。比较A和B的列向量版本更容易,然后重塑结果:

A = randi(5, 3,2); %// example A, size 3x2
B = randi(5, 2,4); %// example B, size 2x4
C = reshape(bsxfun(@eq, A(:), B(:).'), [size(A) size(B)]);

在本例中,C是一个4D数组,大小为3x2x2x4。如果Am,n等于Bp,q,则条目Cm,n,p,q为1,否则为0。

这里的p是什么?请运行代码?这里的示例输入和输出P是计数器,它会为每一行更改行,因为每一行都有其特定的行,这完全不是一笔交易。谢谢@DivakarAs Luis早些时候说过,使用a和B的一些示例值,然后告诉我们必须是什么。我添加了一个示例,说明我的意思,ti只不过是已成立的INDCE的一个席位持有者@我知道我的问题可能没有问过,抱歉。我已经尝试过这个函数,但这不是我想要的。我需要中对应项目的实际索引。在矩阵A或矩阵B中