У меня есть матрица, как
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, это не работает, оно просто делает все на одном векторе. Я думал об использовании найти, а затем изменить форму. Но это работает, только если ровно два числа отличны от нуля на вектор.
Если возможно, я бы хотел избежать петель. Столбцы не имеют никакого отношения между ними.
Любая идея приветствуется