You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran中n维数组的下标含义解读及Matlab等效创建代码

Fortran高维数组规则说明

Fortran采用列优先的数组存储逻辑,数组声明时的下标顺序遵循「最左维度索引变化最快、最右维度索引变化最慢」的规则,默认所有维度的下标起始值为1,开发者也可以通过X(start:end, start:end...)的语法自定义各维度的下标起止范围。

对应你给出的声明示例:

  • 4维数组real(8) X(48,20,7,3):四个维度的长度从左到右依次为48、20、7、3,你可以根据自身业务场景给各维度赋予业务含义(比如第一维对应网格点序号、第二维对应时间步、第三维对应高度层、第四维对应试验组别等),语法层面仅规定存储和索引的顺序规则。
  • 3维数组real(8) Y(48,15,5):三个维度的长度从左到右依次为48、15、5。

举个索引存储的例子:访问X(i,j,k,l)时,i的合法取值范围默认是148,j是120,k是17,l是13。存储时X(1,1,1,1)之后连续存储的是X(2,1,1,1),直到第一维全部存完才会开始存储第二维的下一个索引对应的元素,以此类推,全部前三个维度的元素存完才会更新第四维的索引。

Matlab等效代码

Matlab同样采用列优先存储逻辑,数组维度的定义规则和Fortran完全一致,和你给出的Fortran数组规格完全匹配的创建代码如下:

% 创建双精度4维数组X,维度为48×20×7×3,默认初始值为0
X = zeros(48, 20, 7, 3);
% 创建双精度3维数组Y,维度为48×15×5,默认初始值为0
Y = zeros(48, 15, 5);

如果需要全1数组可以把zeros替换为ones,需要未初始化的数组可以替换为nan。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:54:05