我有以下列格式中的matlab一个文件:MATLAB解析文件到单元阵列
user_id_a: (item_1,rating),(item_2,rating),...(item_n,rating)
user_id_b: (item_25,rating),(item_50,rating),...(item_x,rating)
....
....
所以每一行都有一个冒号其中值至结肠的左边是一个表示数字USER_ID分隔值并且右边的值是item_ids(也是数字)和rating(数字不是浮动)的元组。
我想将这些数据读入一个matlab单元格数组或更好,但最终将其转换为稀疏矩阵,其中user_id表示行索引,item_id表示列索引并将相应的评级存储在该数组索引中。 (这工作,我知道用户和项目的在我的宇宙先验的号码,以便IDS不能大于)。
任何帮助,将不胜感激。
我迄今尝试textscan功能如下:
c = textscan(f,'%d %s','delimiter',':') %this creates two cells one with all the user_ids
%and another with all the remaining string values.
现在,如果我尝试做一些像str2mat(c{2})
,它的工作原理,但它也存储了“(”和“)”字符矩阵。我想以我上面描述的方式存储一个稀疏矩阵。
我是相当新的MATLAB和希望得到有关此事的任何帮助。
每行的(项目,评级)对的数量是否固定? –
NO它是可变的,但每一个元组由逗号分隔的“” – anonuser0428