我正在写一个MATLAB函数来读出数据到一个n维数组(可变维度大小)。我需要能够访问矩阵中的特定点(例如,写入或读取它),但我不知道需要指定多少个索引。使用向量作为矩阵的索引
目前我有一个current_point
矢量,我遍历指定每个索引,并指定数组的大小的max_points
矢量。所以,如果例如,我想大小1000逐15×3,max_points = [1000 15 3]
的3维阵列,并且从[1, 1, 1]
current_point
迭代到[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等,所以一个可变长度的向量真的是我需要的。有一种简单的方法可以将矢量用作索引中的点吗?
这是*本质* [紧凑MATLAB矩阵索引符号(的副本http://stackoverflow.com/questions这只适用/ 792683/compact-matlab-matrix-indexing-notation),尽管也许这个问题比这种情况要简单一些。 – gnovice 2011-05-05 21:59:41
我知道这一定是以前被问过的,但是无法用我的dupe插件找到它。我想我会让答案保持不变,因为问题标题比另一个更直接,可能更容易搜索。 – abcd 2011-05-05 22:11:30
我认为它在某些时候一定被问过了,但从标题中我什么都看不到。来自你们两个的好答案。我认为会有这样简单的事情。 – Paul 2011-05-05 23:37:12