Это мой код, где формируется структура:
while (count < 98)
% certain codes here, then
s(count).frame = count;
s(count).freq = frequency;
s(count).str = strength;
binnum = find(newdata2);
s(count).bin = binnum;
count = count + 1;
end
Содержимое и длина массива binnum
неопределенны, так как он формируется в цикле и меняет свои значения в каждой итерации. Я знаю, что «binnum» может содержать значения только от 1 до 1024.
Теперь мне нужно проверить это поле s.bin
по вертикали, т. Е. От s(1).bin
до s(97).bin
каждый раз на наличие чисел от 1 до 1024. т.е. присутствует первая 1, в которой все binnum
s соответствуют кадру значения мне нужно хранить в другой структуре. Если, например, 1
присутствует в s(1).bin
и в s(70).bin
, то я должен сохранить значения 1 и 70 в другой структуре.
Снова то же самое, чтобы увидеть 2, затем 3, 4 и т. Д. До 1024, то есть каждый раз, когда мне нужно пройти от s(1).bin
до s(97).bin
, чтобы проверить только 1, затем только 2, затем только 3 и скоро.
Я пробовал что-то вроде этого
xx = 1;
for bins = 1:1024
for frame = 1:97
if (s(frame).bin == bins)
r(bins).start(xx) = frame;
xx = xx + 1;
end
end
end
но это не сработает, потому что в состоянии if
я не могу индексировать s.bin
, так как не знаю его длины.
Что мне теперь делать?