Как сформировать подматрицы с некоторыми непоследовательными строками и столбцами матрицы - PullRequest
5 голосов
/ 07 июня 2011

У меня есть матрица 10 на 10.Я хочу сформировать подматрицу из этой основной матрицы, используя все строки и столбцы, кроме 1-го, 2-го и 8-го столбцов и строк.
Я знаю, что Part можно использовать для формирования подматрицы, но примерыв основном о формировании подматрицы, используя только последовательные строки и столбцы.

Ответы [ 2 ]

7 голосов
/ 07 июня 2011

Если это ваша матрица:

tst = RandomInteger[10, {10, 10}];

Это подойдет для данного случая:

tst[[{3, 4, 5, 6, 7, 9, 10}, {3, 4, 5, 6, 7, 9, 10}]]

Вместо явного списка вы можете использовать Complement[Range[10],{1,2,8}].

6 голосов
/ 07 июня 2011

Вот другой способ.

Назовите вашу матрицу

test = Array[m, {10, 10}]

Тогда ваша подматрица будет

subTest = Nest[Delete[Transpose[#], {{1}, {2}, {8}}] &, test, 2]

Сравните с методом Леонида

subTest == test[[#, #]] &[Complement[Range[10], {1, 2, 8}]]
(* True *)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...