【发布时间】:2015-11-06 01:21:45
【问题描述】:
我有向量y_vec,如何将向量转换为Y_matrix形式的矩阵
y_vec = [0; 1; 1; 2; 3; 4]
Y_matrix = [1 0 0 0 0
0 1 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1]
到目前为止,我已经尝试过使用 for 循环。
Y_mat = full(spzeros(length(y_vec), length(unique(y_vec))))
for (i,j) in enumerate(1:length(y_vec))
Y_mat[i, y_vec[j]+1] = 1
end
但是,当y_vec 不连续时似乎有问题,比如y_vec = [0; 1个; 1个; 2; 3; 4; 8],使用 for 循环失败!!!如何解决这个问题。
有没有办法在Julia中使用稀疏矩阵来解决上述问题。
【问题讨论】:
-
y_vec不连续的问题是因为没有足够的列。将Y_mat初始化更改为:Y_mat = full(spzeros(length(y_vec), maximum(y_vec)+1))应该可以解决问题。
标签: matrix julia sparse-matrix