使用matlab中的struct变量构建一个带有值的矩阵

时间:2012-02-22 16:51:45

标签: matlab matrix

我有以下以制表符分隔的txt文件:

User  Item    Rate
1       1       9
1       2       8
2       2       7
3       1       6
3       2       8
3       3       5    

我使用 tdfread 将其导入Matlab,它将上面的每一列放在一个结构的相应变量中(例如,struct.user,struct.item,struct.rate)。从那里,我想在不使用循环的情况下构建下面的矩阵:

9       8       NaN
NaN     7       NaN
6       8       5

其中每行代表上面一个用户(从1到3),每列代表其中一个项目。这可能吗?

谢谢,

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

i = struct.User;
j = struct.Item;
A = nan(3,3);
A(sub2ind(size(A),i,j)) = struct.rate;