Я хочу вернуть строки в массиве ячеек, которые соответствуют условию, которое повторяется каждые несколько (но переменных) строк. Например, если мои данные представляют собой координаты x, y, z, разделенные на i срезов, где каждый срез {i} представляет собой определенный z, у меня может быть что-то похожее на это.
1,3,10
1,4,10
1,5,10
2,3,10
2,4,10
3,1,10
Для каждого x я хочу вернуть строки, содержащие максимальное и минимальное значения y. Итак, в этом случае мне нужны строки 1, 3, 4, 5, 6.
Код, который у меня есть сейчас, выглядит так
idx = slice{i}(start:finish,2) == miny | slice{i}(start:finish,2) == maxy;
return = slice{i}(idx, :);
Но строка slice{i}(idx, :) просматривает весь массив с самого начала. Я хочу ограничить эту строку определенным подмножеством.
Что-то типа
slice{i}(idx, start:finish)
но это не работает.
Я пропустил какой-то синтаксис или мне нужно подойти к рутине по-другому? (Я знаю, что не предоставил достаточно информации для помощи в изменении подхода, но я предполагаю, что есть какой-то способ сделать это, ограничив индексы строк)
редактировать:
Я нашел обходной путь, создав
dummy = slice{i}(start:finish, :);
а затем просто возвращаясь к фиктивной матрице.
slice_num = cell2mat(slice)
, это сработает? - person Divakar   schedule 27.10.2014