двумерный массив, который я имею в виду имеет такие значения, какFortran фильтр двумерный массив
1 2326
1 2331
1 2328
1 2323
2 2404
2 2398
2 2401
2 2403
3 2408
3 2401
3 2408
3 2401
Я хочу работать на всех элементах, которые имеют тот же идентификатор, в то время, как:
program filter_2d
integer(1000, 1000) :: my_array
integer :: id
...
print *, any(my_array(1, :), id)
end program filter_2d
любое просто возвращает true. Как я могу фильтровать строки, которые имеют (i, 1) == 2, например?
и в качестве побочного вопроса, следует ли использовать массивы или просто идти с настраиваемым типом, который имеет целое число id и массив для хранения остальных значений (массив намного больше irl, например 10000x10000).
не уверен, как любой (my_array (i, :), id) работает здесь, не предполагается ли какое-либо логическое выражение? – panosl
Я не уверен, чего вы пытаетесь достичь с помощью 'any' ...' any (my_array (1, :) == id) 'будет true, если какой-либо из элементов первой строки будет' id'. Вы получаете одно истинное/ложное решение, а не набор индексов! –
Я пытался использовать любой, чтобы возвращать уменьшенный массив только с строками, которые соответствовали его выражению, но я полагаю, что это невозможно? – panosl