Matrix fortran语言中矩阵的操作
我有矩阵和数组。我需要增加它们的价值。然后找到具有最大和的行,并带出其编号和值。帮助我理解Matrix fortran语言中矩阵的操作,matrix,fortran,gfortran,fortran95,Matrix,Fortran,Gfortran,Fortran95,我有矩阵和数组。我需要增加它们的价值。然后找到具有最大和的行,并带出其编号和值。帮助我理解 real, allocatable, dimension(:,:) :: startArr real, allocatable:: x(:) , maxArr do i = 1,4 do k=1,4 startArr(1,i)*x(k) startArr(2,i)*x(k) startArr(3,i)*x(k)
real, allocatable, dimension(:,:) :: startArr
real, allocatable:: x(:) , maxArr
do i = 1,4
do k=1,4
startArr(1,i)*x(k)
startArr(2,i)*x(k)
startArr(3,i)*x(k)
startArr(4,i)*x(k)
end do
end do
S = startArr(1,1)+ startArr(1,2) + startArr(1,3) + startArr(1,4)
D = startArr(2,1)+ startArr(2,2) + startArr(2,3) + startArr(2,4)
M = startArr(3,1)+ startArr(3,2) + startArr(3,3) + startArr(3,4)
K = startArr(4,1)+ startArr(4,2) + startArr(4,3) + startArr(4,4)
maxArr = (S,D,M,K)
max = S
do i = 1,4
if(maxArr(i)>max)
max = maxArr(i)
end do
我不能评论你的乘法算法是否正确。你必须用你的数学来检查它,但是你的代码的某些部分是错误的。我试图纠正他们。这是我自己的Compaq Fortran版本
program matrix_Manipulation
implicit none
real, allocatable, dimension(:,:) :: startArr,MultipliedArray
real, allocatable:: x(:) , sumLine(:)
real:: maxValue
integer::i,k
allocate(startArr(4,4),x(4),sumLine(4),MultipliedArray(4,4))
startArr(1,1)=1
startArr(2,1)=2
startArr(3,1)=3
startArr(4,1)=4
startArr(1,2)=5
startArr(2,2)=6
startArr(3,2)=7
startArr(4,2)=8
startArr(1,3)=9
startArr(2,3)=10
startArr(3,3)=11
startArr(4,3)=12
startArr(1,4)=13
startArr(2,4)=14
startArr(3,4)=15
startArr(4,4)=16
x(1)=2
x(2)=0.5
x(3)=8
x(4)=1
do i = 1,4
do k=1,4
MultipliedArray(1,i)=startArr(1,i)*x(k)
MultipliedArray(1,i)=startArr(2,i)*x(k)
MultipliedArray(1,i)=startArr(3,i)*x(k)
MultipliedArray(1,i)=startArr(4,i)*x(k)
end do
end do
sumLine(1) = sum(MultipliedArray(1,1:4))
sumLine(2) = sum(MultipliedArray(2,1:4))
sumLine(3) = sum(MultipliedArray(3,1:4))
sumLine(4) = sum(MultipliedArray(4,1:4))
maxValue = MAXVAL(sumLine)
end program matrix_Manipulation
“MAXVAL”是一个内置函数,用于记住数组或矩阵的最大元素。这在Comaq Fortran中,在gFortran或其他编译器中可能是另一种功能。您的问题是什么?你有一些你不懂的代码;代码不起作用;少了一些东西;你不知道算法吗?弗朗西斯卡勒斯,我写了我的想法。但我不知道它是如何写在fortan上的。我的算法是正确的吗?从你的代码来看,我猜你有一些,但对Fortran的使用知识很少。堆栈溢出可能不是学习该语言的好地方。也就是说,如果你能打破你的问题,并考虑我们可能能够帮助。就你的问题而言,我们基本上必须为你编写完整的代码,以满足你的规范(除了最有趣的问题外,很少有人愿意这么做)。弗朗西斯卡勒斯,好的,我理解,但我的算法是正确的?或者我可以不用额外的数组吗?maxval是一个标准的内在函数