Используя матрицу А, а не сгруппированные данные, вы предполагаете, что случайный раздел ваших данных вернет набор тестов и обучающих данных с одинаковыми распределениями столбцов.
В общем, вы предполагаете, что в вашем вопросе есть разделение A, такое, что каждое из предельных распределений A (1 на столбец) имеет одинаковое распределение по всем трем переменным. Нет никаких гарантий, что это правда. Проверьте, связаны ли столбцы вашей матрицы. Если это не так, просто разделите на 1 и используйте индексы строк, чтобы определить тестовую матрицу:
cv = cvpartition(A(:, 1), 'holdout', p);
text_mat = A(cv.test, :);
Если они взаимосвязаны, вам, возможно, придется вернуться и пересмотреть то, что вы пытаетесь сделать.