【问题标题】:How to create matrix in matlab, octave [duplicate]如何在matlab中创建矩阵,八度[重复]
【发布时间】:2018-01-17 14:55:46
【问题描述】:

我有像 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”

【问题讨论】:

    标签: matlab octave


    【解决方案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
    

    【讨论】:

    • gnovice 也有很好的替代答案。太糟糕了,但他决定删除它。 (
    • @AndrewM:因为它是重复的,所以我将它添加到原件中。
    猜你喜欢
    • 2013-05-13
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2014-06-04
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多