【发布时间】:2015-08-23 00:07:22
【问题描述】:
Libsvm 可以读取以下数据文件并将其转换为 matlab 中的稀疏数据结构(使用 libsvmread)。
-1 3:1 11:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
-1 3:1 6:1 17:1 27:1 35:1 40:1 57:1 63:1 69:1 73:1 74:1 76:1 81:1 103:1
第一列是二元分类的标签,其他列是特征向量。例如,在第一列中,只有位置 3,11,14,19... 不是零。
我有一个文件,其中这些位置没有排序。例如,它可能像 -
-1 11:1 3:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
Libsvmread 在这种情况下将无法工作。无论如何,我可以在哪里对数据进行排序(根据位置),或者是否有任何现有代码可以帮助我在 matlab 中提取这些数据?
目标是给定这个样本输入
-1 11:1 3:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
-1 3:1 2:1 6:1 4:1 17:1 27:1 35:1 40:1 57:1 63:1 69:1 73:1 74:1 76:1 81:1 103:1
我们得到以下输出:
-1 3:1 11:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
-1 2:1 3:1 4:1 6:1 17:1 27:1 35:1 40:1 57:1 63:1 69:1 73:1 74:1 76:1 81:1 103:1
【问题讨论】:
-
从此-1 11:1 3:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80: 1 83:1 至 -1 3:1 11:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
-
使用此信息编辑您的问题,不要将其添加到评论中
-
我正在尝试使用 awk(不太熟悉)。我记下了文本文件中的所有列并将它们分别存储,然后试图以某种方式对它们进行排序。另一件事是更改 libsvm 代码本身。
标签: matlab sorting text awk libsvm