【发布时间】:2015-08-02 11:40:33
【问题描述】:
我有两组(50 个训练和 25 个测试)大小为 42 的直方图。(这些数字是任意的,它们在现实中会更大,所以我正在寻找一种有效的方法。而且约定可能是相反的就转置而言,请随意使用任何约定 [特征 x 观察] 或 [观察 x 特征])
所以x1 的大小为[42, 50],而x2 的大小为[42, 25]。我想计算大小为[50, 25] 的直方图交叉核。直方图交叉核是指包含两个直方图的最小元素的向量的总和。如何使用 MATLAB 做到这一点?
我尝试了k=sum(bsxfun(@min, x1,x2));(带有转置变体)但我得到了错误:
Error using bsxfun
Non-singleton dimensions of the two input arrays must match each other.
感谢您的帮助!
【问题讨论】:
-
那么
x1中包含但x2中不包含的元素会发生什么。例如x1(42,50) = 1984和x2(42,50)不存在。该索引应该被视为 1984 还是 0? -
@thewaywewalk 我不确定我是否理解正确,但是,这应该无关紧要。因为我想编码
x2中的 25 个样本与x1中的 50 个样本的相似程度,因此是 50x25 内核。在训练内核中,它将是 50x50,因为x2=x1。 -
好吧,我误解了你的问题。
标签: matlab histogram vectorization intersection bsxfun