arrays - 多维数组的 Fortran 子数组
问题描述
这可能很简单,
如果我在 Fortran 90 中有一个 3D 数组
REAL A(2,2,2)
如果我将此数组传递给函数
call function(A(:,1,:))
等效的二维数组会是什么样子?
是吗
A(1,1,1) A(1,1,2)
A(2,1,1) A(2,1,2)
解决方案
我认为您已经编写了正确的矩阵切片,A
但只是为了清楚起见:
让我们定义一个f
带有虚拟参数的mat
函数
function f(mat)
real :: mat(2,2)
...
end function
然后像下面f(A(:,1,:))
这样的调用mat
mat(1,1) = A(1,1,1)
mat(2,1) = A(2,1,1)
mat(1,2) = A(1,1,2)
mat(2,2) = A(2,1,2)
推荐阅读
- html - 为带有固定标题的 HTML 5 表格创建滚动条
- php - 无法使用带有 codeigniter 的 ajax 进行更新
- excel - 比较列表选择值并将其放入另一个列表
- spring - 春季批处理问题将csv文件导入数据库
- java - 通过请求范围 bean 在单例服务/控制器中的 Spring Boot 自动装配字段
- python - 如何绕过 GeneralName TypeError?
- python - 跨进程传递队列中的对象引用
- ajax - 选择单选按钮时弹出错误提示框
- java - 在 if ese 语句中获取计算结果
- python - 使用正则表达式将捕获的单词替换为捕获的单词和引用