У меня есть набор данных тренировки 784 * 6000 и вектор метки 1 * 6000. Я хотел перетащить данные, а также метки, я использовал функцию randperm для перестановки меток, и у меня есть перетасованный вектор. как я могу получить индекс старых ярлыков, чтобы я мог также выбрать набор данных. Может кто-нибудь помочь мне
см код игрушечногоЯ перетащил матрицу в matlab, используя 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
Можете ли вы добавить код, как вы использовали randperm, чтобы перетасовать ваши метки? :) – Ikaros
Добро пожаловать в StackOverflow. Здесь, в SO, мы помогаем друг другу с проблемами, с которыми мы сталкиваемся во время программирования. Поэтому, чтобы получить помощь от сообщества, вы должны быть более конкретным с вашей проблемой. что ты уже испробовал? Пожалуйста, предоставьте часть своего кода, иначе вам будет сложно помочь. – W3hri
, если вы использовали randperm (n, k), чтобы перетасовать свой индексный вектор, и вы хотите, чтобы ваша матрица 784 * 6000 следовала этому индексу, вы должны иметь возможность использовать цикл for и обновлять каждый столбец, установив New (:, t) = Old (:, Ind (t)) – GameOfThrows