我想找到一些数据集之间的欧氏距离。对于每个班级,我有大约50个学习或训练样本和5个测试样本。问题是每个样本的数据都存储在单元格中,并且是m * n
格式而不是首选的1 * n
格式。
我看到matlab有一个使用欧氏距离的k个最近邻居的内置函数; knnsearch。但问题是它希望样本采用行和列的形式。当提供单元格中的数据时,它会出错。
无论如何以我的数据所在的格式进行此分类?或者我更喜欢将它们转换为1-D格式(可能通过使用某种降维方式?)
假设有5个类/模型,每个类/模型由大小为32 * N
的单元格表示,下面是来自Matlab的屏幕截图。每个单元格代表许多训练图像的特征,因此单元格1是人1的表示,依此类推。
现在同样我有需要识别的测试图像。每个测试图像的特征也在单元格中。所以我有10个未知图像,它们的特征被提取并存储在单元格中。每个单元格表示单个未知图像。下面是Matlab的屏幕截图,显示了它们的尺寸
可以看出,它们都是不同的维度。我知道这不是KNN的理想格式,因为这里每个图像都由多维矩阵而不是单行变量表示。如何对这些数据执行欧几里德距离?
谢谢