我有一个矩阵 *u_test*,其中包含来 self 的测试集的数据。 它的格式是这样的:
X y value
1 3 5.0
1 6 3.4
4 3 2.0
我想从 *u_test* 创建一个矩阵test,以便评分的值位于正确的位置,例如:
1 2 3 4 5 6
1: 5.0
2: 3.4
3:
4: 2.0
是否有无循环的方式来做到这一点?
最佳答案
最简单的方法是使用 SPARSE
out = sparse(u_test(:,1),u_test(:,2),u_test(:,3));
如果数组的目标大小应该是m-by-n
,你可以这样写
out = sparse(u_test(:,1),u_test(:,2),u_test(:,3),m,n);
使用稀疏的好处是,如果矩阵 u_test
很大,它不会占用太多空间。但是,如果由于某种原因您不能使用稀疏,请使用
outNotSparse = full(out);
关于Matlab从其他矩阵的数据创建矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728796/