gpt4 book ai didi

arrays - 在 Fortran 中,如何从数组中删除第 N 个元素?

转载 作者:行者123 更新时间:2023-12-02 07:01:51 25 4
gpt4 key购买 nike

例如,我有数组(/1,3,4,5,7,9,11/),如何删除其第三个元素?我找不到执行此操作的数组函数,也找不到循环的优雅解决方案,因为我不知道如何附加到数组(这意味着,在先前定义的元素旁边添加一个元素。)

我想从数组中删除所有偶数元素...我知道只有一个。

我可以使用 MINLOC 找到它的索引,但我不知道如何从数组中删除元素。

最佳答案

a = (/1,3,4,5,7,9,11/)

然后

pack(a,mod(a,2)/=0)

将返回a的奇数元素。这与删除第三个元素不太一样,但您的问题表明删除偶数元素确实是您想要做的。

如果您声明

integer, dimension(:), allocatable :: oddones

然后

oddones = pack(a,mod(a,2)/=0)

将留下包含a奇数元素的oddones。您需要一个最新的编译器才能使用此自动分配。

请注意,在 Fortran 中,与任何正常语言一样,数组具有固定大小,因此并不真正支持删除元素。但是,如果 a 本身是可分配的,那么您可以在表达式的 lhs 上使用 a。让我们让哲学家来决定 a 在此操作下是否保持不变。

关于arrays - 在 Fortran 中,如何从数组中删除第 N 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com