我将稀疏特征存储在以下格式的文本文件中(ArrayIndex:Value)。目前我正在使用 reg 表达式解析文本并将其转换为 matlab 数组。我想知道的是,是否有更快/更好的 MATLAB-ish 方法将这种数据格式转换为 matlab 数组。
2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189 2416:0.223526 2417:0.090420
我将稀疏特征存储在以下格式的文本文件中(ArrayIndex:Value)。目前我正在使用 reg 表达式解析文本并将其转换为 matlab 数组。我想知道的是,是否有更快/更好的 MATLAB-ish 方法将这种数据格式转换为 matlab 数组。
2402:0.099061 2404:0.136546 2406:0.447161 2407:0.126333 2408:0.213803 2411:0.068189 2416:0.223526 2417:0.090420
您可以使用 TEXTSCAN 读取和解析文件,然后从这些值构建稀疏矩阵:
fid = fopen('input.txt');
C = textscan(fid, '%f:%f');
fclose(fid);
C = sparse(1,C{1},C{2});
结果:
>> C
C =
(1,2402) 0.099061
(1,2404) 0.13655
(1,2406) 0.44716
(1,2407) 0.12633
(1,2408) 0.2138
(1,2411) 0.068189
(1,2416) 0.22353
(1,2417) 0.09042