У меня есть матрица, каквектор на основе элиминации нули из матрицы
frequencyarray =
697 697 697 697 697 697 0 0 697
0 0 0 0 0 0 770 770 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1209 1209 1209 1209 1209 1209 1209 1209 1209
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
я сейчас хотел бы устранить все нули на векторной основе из него и получить этот
frequencyarray2 =
697 697 697 697 697 697 770 770 697
1209 1209 1209 1209 1209 1209 1209 1209 1209
Я только хотите сделать это, если в векторе есть ровно два ненулевых числа. Если вектор имеет больше или меньше двух ненулевых чисел, их следует заменить нулями.
Поэтому, если у меня есть что-то вроде:
frequencyarray =
0 0 697 697
0 0 770 770
0 0 0 0
0 0 0 0
1209 1209 1209 1209
0 0 0 0
0 0 0 0
ответ должен быть:
frequencyarray2 =
0 0 0 0
Использование находку, это не работает, он просто делает все на одном векторе. Я думал об использовании find, а затем изменил форму. Но это работает только в том случае, если ровно два числа не равны нулю на вектор.
Если возможно, я бы хотел избежать циклов. У столбцов нет никакой связи между ними.
Любая идея ценится
Не простая задача - Вы уверены, что хотите/должны решить ее вектор на основе? – bdecaf
Хм хорошо ... это только результат предыдущей части. я мог подумать об изменении его, хотя. Думаю, я просто воспользуюсь тем, если нет малбаб-волшебного способа сделать это. – Atmocreations
ну, это две части. как я вижу, вы можете обрабатывать линии, векторизованные, но вам все равно придется перебирать строки по строкам. поэтому возможен «полувекторный» подход. Также Али показал вам, что вы нашли «кандидатские» линии векторизованными. – bdecaf