Ошибка при использовании randi Размер входных данных должен быть целым числом.Ошибка в случайной выборке (строка 154) x (randi (n, 1, k-sumx)) = 1;% образец с заменой - PullRequest
0 голосов
/ 02 мая 2019

У меня проблема с использованием randsample для нецелых значений вектора объектов. Каждый раз, когда я пытаюсь разделить вектор объектов на две части, скажем, 80% и 20%, я получаю эту ошибку:

Ошибка в randsample (строка 154)
x(randi(n,1,k-sumx)) = 1; % sample w/replacement

Я пытался применить функцию ceil для округления переменной, но безрезультатно.

N=length(A);     
K=ceil(N);     
for ink=1:1000
    temp_test = zeros(N,1);
    sample_train(:,ink) = randsample(N,(0.8*ceil(N)));
    sample_test(:,ink) = randsample(N,(0.2*ceil(N)));
end

Где A - это вектор объектов, имеющий 799 переменных, и мне нужно разделить его на два 80% и 20%. Проблема в том, что общее число переменных не является целым числом.

Вот отображаемая ошибка:

Предупреждение: целочисленные операнды требуются для оператора двоеточия при использовании в качестве индекса
В randsample (строка 144)
В index_generation (строка 15)

Ошибка при использовании randi
Размеры входных данных должны быть целыми числами.

Ошибка в randsample (строка 154)
x(randi(n,1,k-sumx)) = 1; % sample w/replacement

Ошибка в index_generation (строка 17)
sample_test(:,ink) = randsample(N,(0.2*ceil(N)));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...