用matlab将文本文件解析为稀疏矩阵

用matlab将文本文件解析为稀疏矩阵,matlab,file,parsing,sparse-matrix,Matlab,File,Parsing,Sparse Matrix,我有一个文本文件,格式如下: 10244:3668 4 3663 4 2386 4 4228 3 2361 3 1292 4 2233 4 1945 3 523 4 2695 4 3658 4 1126 4 10269:1949 1 1073 3 450 3 987 3 34 5 2916 4 805 4 2695 3 4467 4 2473 4 10421:395 3 2969 5 464 5 2667 1 157 4 118 4 3898 4 4466 3 2034 3 176 2 330

我有一个文本文件,格式如下:

10244:3668 4 3663 4 2386 4 4228 3 2361 3 1292 4 2233 4 1945 3 523 4 2695 4 3658 4 1126 4
10269:1949 1 1073 3 450 3 987 3 34 5 2916 4 805 4 2695 3 4467 4 2473 4 
10421:395 3 2969 5 464 5 2667 1 157 4 118 4 3898 4 4466 3 2034 3 176 2 3304 2 
...
这表示评级矩阵,其中每行表示一个用户的评级。用户id和用户分级的项目由
分隔。因此,每行上的第一个数字是
用户id
,而
右侧的每对连续数字:
是一对项目代码和项目评级

我想用matlab解析这个文件,并用它创建一个稀疏矩阵。虽然我知道如何创建稀疏矩阵,但我对matlab非常陌生,不知道如何解析此文件,以便以以下形式创建条目:

user_id, item_id, rating
对于文件中的每个评级


示例:

第一行:

10244:3668 4 3663 4 2386 4 4228 3 2361 3 1292 4 2233 4 1945 3 523 4 2695 4 3658 4 1126 4
将转变为:

10244,3668,4
10244,3663,4
10244,2386,4
10244,4228,3
...
我觉得在python这样的语言中,这是一项非常简单的任务,文件解析功能非常广泛,但我不知道如何在matlab中实现这一点,因为我本周才开始使用matlab。任何帮助都将不胜感激


提前谢谢

看看
textscan
,它允许使用多个分隔符:
ln=textscan(x,'%d',inf,'Delimiter',{':','''})
我将我的文本文件转换为表格行列列值\n并使用textscan函数如下:ln=textscan(f,'%d%d%f',inf,'Delimiter',{'});现在我有了类int32的值ln{1},ln{2},ln{3},我无法用这些值创建稀疏矩阵,因为稀疏方法不接受int32类型的值。如何将它们转换为稀疏函数所接受的列表或向量对象?使用
double
函数将值转换为double。