Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我已经在matlab中使用randperm重新排列了一个矩阵,如何获得旧矩阵的索引_Matlab - Fatal编程技术网

我已经在matlab中使用randperm重新排列了一个矩阵,如何获得旧矩阵的索引

我已经在matlab中使用randperm重新排列了一个矩阵,如何获得旧矩阵的索引,matlab,Matlab,我有784*6000的训练数据集和1*6000的标签向量。我想重新排列数据和标签,我使用了randperm函数来重新排列标签,我得到了重新排列的向量。如何获取旧标签的索引,以便可以相应地选择数据集。有人能帮我吗 请看玩具代码 %toy program %label is given for 9 data set label =[ 1 1 1 2 2 2 3 3 3]; label= label'; data = [1 0 0 ; 1 0 0 ; 1 0 0 ;0 1 0; 0 1 0 ;

我有784*6000的训练数据集和1*6000的标签向量。我想重新排列数据和标签,我使用了randperm函数来重新排列标签,我得到了重新排列的向量。如何获取旧标签的索引,以便可以相应地选择数据集。有人能帮我吗
请看玩具代码

%toy program 
%label is given for 9 data set 
label =[ 1 1 1 2 2 2 3  3  3];
label= label';
data = [1 0 0 ; 1 0 0 ; 1 0 0 ;0 1 0; 0 1 0 ; 0 1 0; 0 0 1; 0 0 1; 0 0 1  ];

shuffledlabel =label(randperm(size(label,1)),:);
resizedlabel= shuffledlabel(1:5,:);

% I want to resize the data also based on the resized labels 
这是你想要的吗

ind_shuffle = randperm(size(label,1));
shuffledlabel = label(ind_shuffle);
[~, ind_deshuffle] = sort(ind_shuffle); %// index to recover original order
deshuffledlabel = shuffledlabel(ind_deshuffle);
这是你想要的吗

ind_shuffle = randperm(size(label,1));
shuffledlabel = label(ind_shuffle);
[~, ind_deshuffle] = sort(ind_shuffle); %// index to recover original order
deshuffledlabel = shuffledlabel(ind_deshuffle);
这是你想要的吗

ind_shuffle = randperm(size(label,1));
shuffledlabel = label(ind_shuffle);
[~, ind_deshuffle] = sort(ind_shuffle); %// index to recover original order
deshuffledlabel = shuffledlabel(ind_deshuffle);
这是你想要的吗

ind_shuffle = randperm(size(label,1));
shuffledlabel = label(ind_shuffle);
[~, ind_deshuffle] = sort(ind_shuffle); %// index to recover original order
deshuffledlabel = shuffledlabel(ind_deshuffle);


您可以添加如何使用randperm洗牌标签的代码吗?:)欢迎来到StackOverflow。在这里,我们互相帮助解决编程时遇到的问题。因此,为了从社区获得帮助,你应该更具体地处理你的问题。到目前为止你试过什么?请提供一些代码,否则将很难为您提供帮助。如果您使用randperm(n,k)来洗牌索引向量,并且希望784*6000矩阵遵循该索引,您应该能够使用for循环并通过设置New(:,t)=Old(:,Ind(t))来更新每一列我添加了一个玩具代码非常感谢你指出我没有添加代码的错误你可以添加你如何使用randperm洗牌的代码吗?:)欢迎来到StackOverflow。在这里,我们互相帮助解决编程时遇到的问题。因此,为了从社区获得帮助,你应该更具体地处理你的问题。到目前为止你试过什么?请提供一些代码,否则将很难为您提供帮助。如果您使用randperm(n,k)来洗牌索引向量,并且希望784*6000矩阵遵循该索引,您应该能够使用for循环并通过设置New(:,t)=Old(:,Ind(t))来更新每一列我添加了一个玩具代码非常感谢你指出我没有添加代码的错误你可以添加你如何使用randperm洗牌的代码吗?:)欢迎来到StackOverflow。在这里,我们互相帮助解决编程时遇到的问题。因此,为了从社区获得帮助,你应该更具体地处理你的问题。到目前为止你试过什么?请提供一些代码,否则将很难为您提供帮助。如果您使用randperm(n,k)来洗牌索引向量,并且希望784*6000矩阵遵循该索引,您应该能够使用for循环并通过设置New(:,t)=Old(:,Ind(t))来更新每一列我添加了一个玩具代码非常感谢你指出我没有添加代码的错误你可以添加你如何使用randperm洗牌的代码吗?:)欢迎来到StackOverflow。在这里,我们互相帮助解决编程时遇到的问题。因此,为了从社区获得帮助,你应该更具体地处理你的问题。到目前为止你试过什么?请提供一些代码,否则将很难为您提供帮助。如果您使用randperm(n,k)来洗牌索引向量,并且希望784*6000矩阵遵循该索引,您应该能够使用for循环并通过设置New(:,t)=Old(:,Ind(t))来更新每一列我添加了一个玩具代码非常感谢你指出我没有添加代码的错误非常感谢!这就是我想要的。@sollybennet请不要忘记接受路易斯的回答,因为它解决了你的问题。谢谢非常感谢你!这就是我想要的。@sollybennet请不要忘记接受路易斯的回答,因为它解决了你的问题。谢谢非常感谢你!这就是我想要的。@sollybennet请不要忘记接受路易斯的回答,因为它解决了你的问题。谢谢非常感谢你!这就是我想要的。@sollybennet请不要忘记接受路易斯的回答,因为它解决了你的问题。谢谢