【发布时间】:2025-12-16 12:30:02
【问题描述】:
我正在编写一个 MATLAB 函数来将数据读入一个 n 维数组(可变维度大小)。我需要能够访问 Matrix 中的特定点(例如写入或读取它),但我不提前知道要指定多少索引。
目前我有一个 current_point 向量,我通过它迭代来指定每个索引,以及一个 max_points 向量,它指定数组的大小。因此,如果我想要一个大小为 1000×15×3 的 3 维数组,max_points = [1000 15 3] 和 current_point 从 [1, 1, 1] 迭代到 [1000, 15, 3] ([1, 1, 1] -> [1000, 1, 1] -> [1, 2, 1] -> [1000, 2, 1] ->...)。我想做的是将current_point 作为矩阵的索引提供,如下所示:
output_matrix(current_point) = val
但显然像output_matrix([1 2 3]) = val 这样的东西只会设置outputmatrix(1:3) = 30。我不能只使用虚拟变量,因为有时矩阵需要 3 个索引,有时需要 4 个,有时需要 2 个,等等,所以在这里我需要一个可变长度的向量。有没有一种简单的方法可以将向量用作索引中的点?
【问题讨论】:
-
这本质上是Compact MATLAB matrix indexing notation的副本,尽管这个问题可能比那个情况简单一些。
-
我知道之前一定有人问过这个问题,但在我的欺骗插件中找不到它。我想我会让答案留下来,因为问题标题比另一个更直接,可能更容易搜索。
-
我认为它一定是在某个时候被问到的,但从标题中我什么也没看到。两位的回答都很好。我想会有这样简单的事情。