У меня есть один массив строк, который я хочу использовать для извлечения образцов из большей матрицы данных, которые у меня есть. Прямо сейчас у меня есть один массив строк, 1200x1. И мои фактические данные «имена» (массив строк, который обозначает, что значения соответствуют 6855x1, а «данные» - 6855x2.
Вот что я придумал:
C = intersect(names,sites) %To find common strings
% Чтобы найти, где эти строки находятся в моем исходном наборе данных:
Q=zeros(length(C),1)
for i=1:length(C)
for j=1
while strcmp(C(i),names(j))==0
j=j+1
Q(i)=j
end
end
end
% Чтобы затем использовать приведенные выше значения для компиляции нового вектора с фактическими значениями данных из «данных»:
A=zeros(length(Q),1)
for i=1:length(Q)
A(i) = mock(Q(i),1)
Единственная проблема в том, что я запускаю второй набор циклов, который я перечислил прямо сейчас, и очевидно, что это займет несколько часов. Я думаю, что должен быть более быстрый способ без создания трех циклов. Кто-нибудь знает лучший метод?