gpt4 book ai didi

fortran - 减小 Fortran 90 中数组的大小

转载 作者:行者123 更新时间:2023-12-02 20:32:32 24 4
gpt4 key购买 nike

假设我有一个数组:

real, dimension(100000, 5) :: a

该数组将由从 a(0, :)a(n, :) 的实数填充,其中 n 是小于 100000 的数字。填充完所有值后,我们就可以确定 n 的值(假设它是 30000)。我想将数组 reshape 为:

real, dimension(30000, 5) :: a

只是为了删除数组中未使用的元素。我不想执行任何数组复制过程,因为数组很大,因此,它会破坏程序效率。这里有解决办法吗?

最佳答案

你什么也做不了。该语言中没有任何内容可以缩小数组。尤其是当您首先将其声明为固定大小的数组时。既然你禁止复制,那你就真的无能为力了。

您没有告诉我们您为什么要这样做。为了节省内存?它是一个固定大小的数组real,dimension(100000, 5),它就在那里,你不能保存任何东西。您可以使用可分配数组,但为了缩小副本是必要的

或者只是为了更轻松地使用数组?就像旧的 FORTRAN 77 天那样,声明一个变量 n 并始终使用数组作为

a(:n,:)

使其连续?您需要使其可分配并将其分配到正确的大小。

在某种程度上,你的问题是一个典型的XY problem你没有告诉我们真正的目的是什么。您只是要求一些技术细节,这可能不是解决最终目标的最佳方法。考虑使用可分配数组并从一开始就将其分配到正确的大小。

关于fortran - 减小 Fortran 90 中数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48239031/

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