【发布时间】:2017-08-01 18:48:17
【问题描述】:
我有以下 CSV 格式用于用户评分项目:
A1YS,8F20,3.0
A3TS,8320,2.0
A3BU,1905,5.0
A3BU,3574,4.0
A14X,185A,1.0
这些列是 UserID、ItemID、Rating
我想将它加载到一个 Matlab 矩阵中,其中用户的行、项目的列和单元格值将包含评分(未知评分等于零),例如:
8F20, 1905, 3574, 185A
A1YS 3 , 0 , 0 , 0
A3TS 2 , 0 , 0 , 0
A3BU 0 , 5 , 4 , 0
A14X 0 , 0 , 0 , 1
另外,其实矩阵可以这样形成:
3 , 0 , 0 , 0
2 , 0 , 0 , 0
0 , 5 , 4 , 0
0 , 0 , 0 , 1
我对 Matlab 很陌生,并尝试了一些变体:
https://stackoverflow.com/a/13775907/1726419 和 https://stackoverflow.com/a/19613301/1726419
没有大的成功 - 我会非常感谢任何帮助。
编辑: 到目前为止我得到的是:
fid = fopen('ratings_sample.csv');
out = textscan(fid,'%s%s%d%d','delimiter',',');
fclose(fid);
c1 = out{1};
c2 = out{2};
c3 = out{3};
我的问题是我需要重复删除 c1 和 c2 并正确填充矩阵的内部单元格。另外,我不知道这是否是加载它的正确方法。
【问题讨论】:
-
您需要先加载数据,然后将其操作为您想要的形状。你在第二个例子中尝试过 textscan 吗?如果是这样,请告诉我们您取得了多大的成就,哪些没有奏效?
-
谢谢,@Justin,我已经上传了到目前为止我所做的事情,我的主要问题是旋转矢量、重复删除和填充数据...
标签: matlab csv matrix recommendation-engine