我想调整一个数组的大小。例如,如果我有一个包含10个元素的数组,我想排除前5个元素,从中定义另外5个元素,并将新10元素分配给新数组。也许我有这个想法,但我有一个问题来定义新的矢量。请在下面找到我的想法。
Program test
Implicit None
Integer :: i,j,k,m,n
Real,Dimension(1:20) ::A
Real,Dimension(1:15) ::B
Do j=1,20
A(j)=j+3
End do
Do i=1,5
Do m=1,3
! here, i want to define new array with 15 elements
( A(i)+m*0.5*(A(i+1)-A(i)) )
End do
End Do
End Program test
答案 0 :(得分:0)
考虑到评论中的信息,您的代码最直接的扩展如下,但您的意图并不是那么清楚。它使用A
的前6个元素,而不是5。
Do i=1,5
Do m=1,3
B(3*(i-1)+m) = A(i)+m*0.5*(A(i+1)-A(i))
End do
End Do
此代码将进行以下分配:
B(1) <- A(1)+1*0.5*(A(2)-A(1))
B(2) <- A(1)+2*0.5*(A(2)-A(1))
...
B(4) <- A(2)+1*0.5*(A(3)-A(2))
检查您是否真的打算这个订单,它也可能是5*(m-1)+i
。