Fortran和C阵列存储的区别?

Fortran和C阵列存储的区别?,c,r,matrix,fortran,lapack,C,R,Matrix,Fortran,Lapack,我想在c程序中使用Lapack lib中的F77_NAME(dgeqrf)函数计算qr分解 对于矩阵3x3: 12.000000 -51.000000 4.000000 6.000000 167.000000 -68.000000 -4.000000 24.000000 -41.000000 我得到输出3x3(R矩阵和一些用于构造Q的向量的组合)(线性形式): 我使用Lapack中的F77_名称(dorgqr)提取Q矩阵,得到输出3x3(线性形式): 这是一个取自维基百科的例子,我的Q似乎与维

我想在c程序中使用Lapack lib中的F77_NAME(dgeqrf)函数计算qr分解

对于矩阵3x3:

12.000000 -51.000000 4.000000
6.000000 167.000000 -68.000000
-4.000000 24.000000 -41.000000
我得到输出3x3(R矩阵和一些用于构造Q的向量的组合)(线性形式):

我使用Lapack中的F77_名称(dorgqr)提取Q矩阵,得到输出3x3(线性形式):

这是一个取自维基百科的例子,我的Q似乎与维基百科Q有所不同:

fortran和c数组表示法之间的差异可能是原因吗?
对初始矩阵进行转置可以解决问题吗?

我希望您不要期望其他人做您的工作。因为你几乎回答了你的问题,我不认为张贴它有什么意义。此外,在使用本网站之前花些时间阅读常见问题部分可能是一件好事。你可能会在那里找到一些有用的信息

至于问题的答案:

很可能是C和Fortran在数组表示上的差异导致了您的问题。见此:

有关混合Fortran和C代码的一般信息,以下内容可能会有所帮助:


我希望你不要指望别人做你的工作。因为你几乎回答了你的问题,我不认为张贴它有什么意义。此外,在使用本网站之前花些时间阅读常见问题部分可能是一件好事。你可能会在那里找到一些有用的信息

至于问题的答案:

很可能是C和Fortran在数组表示上的差异导致了您的问题。见此:

有关混合Fortran和C代码的一般信息,以下内容可能会有所帮助:


那么在调用FORTRAN之前转置矩阵时会发生什么?那么在调用FORTRAN之前转置矩阵时会发生什么?
-52.545219, -0.790144, 0.061972, 165.895209, -70.906839, -0.520684, 27.328842, -31.566433, -23.015097
-0.228375, 0.970593, -0.076125, -0.618929, -0.084383, 0.780901, 0.751513, 0.225454, 0.619999