如何在MATLAB中更改矢量/数组的索引值?
例如,A = [1 2 3 4 5]
。这里有A(1) = 1
,A(2) = 2
等。我想将索引的基值更改为1001
或2001
,以便现在A(1001) = 1
或A(2001) = 1
。
有人可以告诉我如何在MATLAB中完成。感谢帮助。提前谢谢。
答案 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