如何在matlab,octave中创建矩阵

时间:2018-01-17 14:55:46

标签: matlab octave

我有像V [5000,1]这样的矢量,其值在1-10范围内 如何获得矩阵W [5000,10]

    #include <iostream>
    using namespace std;
    int i,coins[8];
    long long a;
    long long solve(long long a){
        if(a==0){
            return 1;
        }
        if(a<0){
            return 0;
        }
        long long k=0;
        for(i=1; i<=6; i++){
            k+=solve(a-coins[i]);
        }
        return k;
    }
    int main(){
        coins[1]=1; 
        coins[2]=5;
        coins[3]=10; 
        coins[4]=25;
        coins[5]=50; 
        coins[6]=100;
        cin>>a;
        cout<<solve(a)<<endl;
        return 0;
    }

它的W在矢量V指示的列中具有“1”

1 个答案:

答案 0 :(得分: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