如何在matlab,octave中创建矩阵
How to create matrix in matlab, octave
我有像 V[5000,1] 这样的向量,其值在 1-10 范围内
如何得到矩阵 W[5000,10]
V[1] W[1 0 0 0 0 0 0 0 0 0]
[2] W[0 1 0 0 0 0 0 0 0 0]
[10] W[0 0 0 0 0 0 0 0 0 1]
[7] W[0 0 0 0 0 0 1 0 0 0]
... ...
它的类似 W 在向量 V 指示的列中有“1”
解决方案
您可以使用以下方法:
W = zeros(length(v),10);
W(sub2ind(size(W),1:length(v),v'))=1;
结果
v = [10,4,10,4,9]
W =
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0
我有像 V[5000,1] 这样的向量,其值在 1-10 范围内 如何得到矩阵 W[5000,10]
V[1] W[1 0 0 0 0 0 0 0 0 0]
[2] W[0 1 0 0 0 0 0 0 0 0]
[10] W[0 0 0 0 0 0 0 0 0 1]
[7] W[0 0 0 0 0 0 1 0 0 0]
... ...
它的类似 W 在向量 V 指示的列中有“1”
解决方案
您可以使用以下方法:
W = zeros(length(v),10);
W(sub2ind(size(W),1:length(v),v'))=1;
结果
v = [10,4,10,4,9]
W =
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0