2016-05-27 4 views
1

Это очень простая проблема, но я не нашел в ней никаких намеков. Скажем, у меня есть матрица 2x4, и я хочу, чтобы уменьшить размерность матрицы только эти столбцы, которые в сумме больше, чем 1:Выбор столбцов/строк матрицы в Julia

A=rand(2,4) 
ind = sum(A,1).>1 

Это дает мне индикатор столбцов, которые я хочу сохранить. Наивно можно было бы предположить, что я могу сделать это:

A[:,ind] 

, который не работает, как отр является BitArray и только для Bool Массивы это разрешено, то есть следующие работы

A[:,[true,true,false,true]] 

в обмене , следующие работы:

A[A.>0.5] 

Но он возвращает вектор отфильтрованных элементов. Какова логика этого и как я могу решить свою проблему?

+0

Я выяснил, что получаю правильную матрицу с 'A [:, find (ind)]' , но мне непонятно, почему это нужно сделать именно так. – Sibylse

+6

Я предполагаю, что вы используете Julia 0.3? Это работает в Julia 0.4.5 (последняя стабильная). –

+0

Правда. Ладно, так что это было «исправлено» .. спасибо u! – Sibylse

ответ

0

Как отмечено в комментариях, это исправлено с использованием версии Julia, которая равна = v0.4.