在 Fortran 中是否有办法将数组(向量、矩阵、甚至标量)设置为零? 2003/2008 似乎将 Fortran 提升到了一个非常现代的水平,我想知道他们是否包含了一种简单的方法来将数组值设置为零,而无需这样做
do i = 1,X
do j = 1,Y
A(i,j) = 0
enddo
enddo
其中 X 是二维矩阵中的行数,Y 是列数。这可以推广到任意多个维度,但原理是相同的。
在 Matlab 中,这可以使用 Zeros 函数轻松完成,即
A = zeros(X,Y)
现代 Fortran 似乎将人们喜欢的 Matlab 和其他语言的许多东西融入到它的功能中,所以我只是好奇他们是否有一个内在的东西来完成这个简单而基本的任务。
或者也许在现代 Fortran 中,没有必要通过初始化数组来清除内存中以前存储的任何值?
我想更短的方法就是直接走
real, dimension(X,Y) :: A
A = A*0.0 ! Set all elements to zero by multiplying matrix by scalar value 0
但是关于内在函数的问题仍然存在。
最佳答案
事实证明答案非常简单。
A = 0.0
或者只是
A = 0
会将数组中的所有元素设置为 0.0000...
(从问题中移出。)
关于arrays - Fortran 中是否有用于将数组初始化为零的内在函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43433004/