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是一个标准的内在函数