如何找到对应于-10到9.99的t的索引

时间:2018-05-03 14:51:17

标签: matlab

说我有一个向量:t = -10:0.01:9.99;它具有与矢量y不同的矢量长度。如何找到与t对应的y的索引?

3 个答案:

答案 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的对应关系总是更好。但如果你不介意准确性损失,上述应该有效。