2015-12-11 4 views
-1

У меня есть массив строк:MATLAB Перестановка (переставить) массив строк

size(entries) 

ans = 

      1  19413 

Я хотел бы изменить массив 4853 строк и 4 столбцов:

output=permute(entries,[4853 4]); 

но получить следующее сообщение об ошибке:

Error using permute ORDER contains an invalid permutation index.

Что такое (возможно, очевидная вещь) Я делаю неправильно? спасибо

+4

Вместо этого используйте 'reshape'. – mikkola

+7

* Очевидное * дело в том, что вы не читаете документы. – Divakar

+0

Я удалил тэг 'permute'. Это относится к пакету в Р. – rayryeng

ответ

3

В настоящее время у вас есть элементы 19413, но вы хотите переделать его в матрицу 4853 x 4, состоящую из элементов 4853 * 4 = 19412. Никакая функция в мире не поможет вам сделать это, потому что исходное и целевое количество элементов не совпадают - они отключены одним элементом. Если вы удалите один из элементов ... скажите ... последний, то мы куда-нибудь пойдем.

Если вы допустили ошибку и включили этот дополнительный элемент случайно, вы здесь не используете permute, но используете reshape. Второй аргумент reshape - это количество элементов для распространения для каждого целевого измерения, и это то, что вы ищете. Сначала удалите посторонний элемент, который появляется в конце массива, затем reshape:

output = reshape(entries(1:end-1),[4853 4]); 
Смежные вопросы