Fortran C# 混合编程时,数组参数的处理
2012-02-14 15:20
232 查看
当我们在C#中调用一个Fortran编写的函数并且包含数组参数时,需要做以下两个处理.
1.参数声明:
例如当参数为整型数组时,不管是1维还是2维数组,通通声明为"ref int array",调用时传入数组第一个元素的引用,如"ref arr[0,0]".
2.传入,读取多维数组:
简单的说不管我们传入一个2维数组还是读取一个2维数组的值,通通需要先进行"转置"处理.即先转置后传入,读取后也需要转置才能得到正确返回结果.
例如 定义需要传入 A[2,5] 数组时,先对A转置,传入A',但每一维的长度还是按转置前的数组进行传入
以下为C#转置矩阵的函数
1.参数声明:
例如当参数为整型数组时,不管是1维还是2维数组,通通声明为"ref int array",调用时传入数组第一个元素的引用,如"ref arr[0,0]".
2.传入,读取多维数组:
简单的说不管我们传入一个2维数组还是读取一个2维数组的值,通通需要先进行"转置"处理.即先转置后传入,读取后也需要转置才能得到正确返回结果.
例如 定义需要传入 A[2,5] 数组时,先对A转置,传入A',但每一维的长度还是按转置前的数组进行传入
以下为C#转置矩阵的函数
public static T[,] MatrixConvert<T>(T[,] matrix) { T[,] result = new T[matrix.GetLength(1), matrix.GetLength(0)]; for (int i = 0; i < matrix.GetLength(0); i++) { for (int j = 0; j < matrix.GetLength(1); j++) { result[j, i] = matrix[i, j]; } } return result; }
相关文章推荐
- Fortran C# 混合编程时,数组参数的处理
- 函数参数是数组且是传址方式的处理办法(C#)
- SQL Server存储过程 对数组参数的循环处理
- C#传递数组参数
- .Net ( c# ) 与 Fortran 混合编程实例(二):杆系结构有限元法——平面桁架解答(4):测试
- c#教程之事件处理函数的参数
- C#中数组作为函数参数的传递方式
- C#中数组参数params关键字的作用
- C#中数组作为参数传递的问题
- 【原创】PB调用SAP的Web Service结构体数组参数方法详解(使用C#调用Web Service生成dll)
- C# 字符串,数组,日期常遇到的处理方法(持续更新)
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习
- C#后台调用oracle存储过程,参数传入的是clob字段,怎样处理
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习(一)
- 黑马程序员之C#编程基础学习笔记:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素减1。
- 指针作为函数参数(处理数组的四种方式)
- PHP SOAP client pass array to C# SOAP webservice(PHP SOAP 数组参数传递)
- C#调用Win32 API如何处理指针类型的参数
- 【.Net】 C#参数数组与函数重载
- c#与matlab混合编程中 关于字符串和字符串数组的传递