dict = {1.1,'Species_1';1.2,'Species_1';1.3,'Species_1';1.4,'Species_1';1.5,'Species_1';1.6,'Species_1';2.1,'Species_2';2.2,'Species_2';2.3,'Species_2';3,'Species_3';4.1,'Species_4';4.2,'Species_4';4.3,'Species_4';5.1,'Species_5';5.2,'Species_5';6.1,'Species_6_1';6.2,'Species_6_2';8,'Species_8';9,'Species_9'};
a = [1.1,3,1.2,8,5.1,4.1];
dict是一个19行2列的元胞数组,第一列是数值,第二列是字符串,我想根据向量a的值对dict的第一列进行索引,得到a中的值在dict第一列中的位置索引值,即index = [1,10,2,18,14,11]。
现在我有一种方式可以得到这个结果,代码如下所示:
for i = 1:length(a)
index(i) = find(cellfun(@(x)isequal(x,a(i)),dict(:,1)));
end
但是我涉及到的数据量比较多,如果用循环次数过多,会影响性能,请问有没有一种函数或者其它解决方式,能够直接得到向量a在dict中的索引值?