在matlab中改变向量的索引值

时间:2014-12-22 06:00:37

标签: matlab indexing

如何在MATLAB中更改矢量/数组的索引值?
例如,A = [1 2 3 4 5]。这里有A(1) = 1A(2) = 2等。我想将索引的基值更改为10012001,以便现在A(1001) = 1A(2001) = 1

有人可以告诉我如何在MATLAB中完成。感谢帮助。提前谢谢。

2 个答案:

答案 0 :(得分:3)

我不认为你可以做到这一点,但你可以欺骗'它可能使用sparse矩阵(严格取决于您的应用程序):

b(1001:1005) = sparse(A)

然而,对于你在评论中提到的内容,做这样的事情会更有意义:

study = 1001:1005;
results = 1:5;  %// This is your A

ind = A == 3;

%// Now find the study number that matches your specific result:
study(ind)

答案 1 :(得分:2)

您无法在Matlab中直接更改数组的索引,但您可以使用帮助程序匿名函数将study ID转换为正确的索引。

A = [1 2 3 4 5] ;
sid = @(ix) ix-1000 ;

现在sid studyID 的缩写,但您可以根据需要命名)将始终将1000移除到您抛出的任何索引。它适用于单个索引:

>> A(sid(1002))
ans =
     2

但也有多个指数:

>> A(sid([1001 1003:1004]))
ans =
     1     3     4