您是在寻求有关 VBA 的帮助,还是寻求有关如何在 Excel 工作表中编码 5D 数组的帮助?这个答案假设后者。有很多方法可以做到这一点,但这里有两种选择(不一定是好的选择,但希望它们能帮助您创造性地思考问题)。
(1) 如果数组是稀疏的,可以将数据作为元组列表存储在excel表格中,形式为(dim1、dim2、dim3、dim4、dim5、value),前面是数组的维数.例如,您的 Excel 工作表可能包含以下数据:
5 9 9 7 8
1 2 9 6 4 10.1
4 9 3 7 2 18.9
3 2 1 7 8 19.2
相应的 MATLAB 数组将定义如下(假设您希望空值是 NaN):
mat = NaN(5, 9, 9, 7, 8);
mat(1, 2, 9, 6, 4) = 10.1;
mat(4, 9, 3, 7, 2) = 18.9;
mat(3, 2, 1, 7, 8) = 19.2;
(2) 您可以将数组存储为一个简单的值列表,再次以数组的维数开头。可以根据 MATLAB 如何对数组进行矢量化,对该列表进行规范索引。例如,您的 Excel 工作表可能包含以下数据:
5 9 9 7 8
11.3
14.2
25.5
18.9
<etc.>
相应的 MATLAB 数组将定义如下(再次假设您希望空值是 NaN):
mat = NaN(5, 9, 9, 7, 8);
mat(1) = 11.3;
mat(2) = 14.2;
mat(3) = 25.5;
mat(4) = 18.9;
<etc.>
当然,在这两种情况下,您都可以使用 xlsread 和 reshape 等 MATLAB 函数自动将矩阵从 Excel 加载到 MATLAB。
对于我解释您的问题的方式,Excel 文件也没有什么特别之处;如果你想走这条路,那么 CSV 文件可能是存储数据的更好选择。