Matlab - разбить матрицу

Возможный дубликат:
Как я могу разделить/разбить матрицу по строкам между двумя другими матрицами?

У меня есть матрица A со 100 строками, я хочу случайным образом разделить ее на 2 матрицы, одна из которых будет иметь 70 строк A, а другая - оставшиеся 30 строк. Как это делается?


person Glup    schedule 06.04.2011    source источник
comment
Что ж, технически это не дубликат, поскольку Глюп спрашивает, как разбить матрицу случайным образом, а не просто разрезать матрицу после 70-й строки.   -  person gnovice    schedule 06.04.2011
comment
@gnovice: ответ на повторяющийся вопрос использует randperm для создания двух случайных дробей. Разница в одном вопросе 1/3 против 2/3, а в другом 0,3 против 0,7.   -  person Jonas    schedule 06.04.2011
comment
@Jonas: К сожалению, я не видел упоминания о случайности в другом вопросе, но он есть в ответе. Этот вопрос, безусловно, следует отредактировать, чтобы очистить его и сделать более общим, чтобы его можно было легко найти в будущем.   -  person gnovice    schedule 06.04.2011
comment
@gnovice: готово. Пожалуйста, посмотрите, может ли он использовать некоторые дополнительные улучшения.   -  person Jonas    schedule 06.04.2011


Ответы (1)


Довольно давно я действительно использовал Matlab, но это должно сработать: сначала мы ищем случайное число для разделения матрицы. Затем мы сохраняем все строки до этого фактора в B, остальное сохраняется в C

split = round(rand(1)*100);
B = A[1:split, :];
C = A[(split+1):100, :];
person Chris    schedule 06.04.2011
comment
Ну, это расщепление, как вы сказали. Он объединяет последовательные строки в одном разделе. Это не то, чего я хочу. Я хочу, чтобы было возможно, например, иметь первую, пятую строку в первом разделе, а вторую, третью,... шестую и т. д. во втором - person Glup; 06.04.2011
comment
Ой, извините, тогда я вас неправильно понял. Я думал, что просто точка разделения должна быть случайной. В любом случае, посмотрите ссылку Джонаса под вашим вопросом, она должна ответить на вашу проблему. - person Chris; 06.04.2011