说我有一个向量:t = -10:0.01:9.99;它具有与矢量y不同的矢量长度。如何找到与t对应的y的索引?
答案 0 :(得分:3)
您可以使用ismember
函数查找与另一个向量中的索引匹配的索引。例如。像这样的东西
x = 0:0.1:10; %some x data
y = x.^2; %some y data
xcoarse = 0:10; %coarser or restricted x data
idx = ismember(x,xcoarse); %find indexes
yy = y(idx); %Find corresponding y values
答案 1 :(得分:0)
这是一个简单的例子:
a = -10:10;
b = -2:5;
idx = zeros(size(b));
for i = 1:length(b)
idx(i) = find(a==b(i));
end
输出:
idx =
9 10 11 12 13 14 15 16
>> a
a =
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
>> b
b =
-2 -1 0 1 2 3 4 5
您可以看到idx
匹配b等于的索引。
答案 2 :(得分:0)
试试这个:
如果t是[1x1999]个元素,y是[1x100]
y[j]
对应t[i]
,j = unit64( (i/len(t) * len(y) )
这将确保您的y [1]和t [1]以及y [end]和t [end]对应,但是您仍然会有大量数据丢失但保留比率。这比填充零更好,因为这可能会导致结果混乱。
然而,使用相同长度的向量以1:1的对应关系总是更好。但如果你不介意准确性损失,上述应该有效。