Я хочу вернуть строки в массиве ячеек, которые удовлетворяют условию, которое повторяется каждые несколько (но переменных) строк. Например, если мои данные являются координатами x, y, z, разбитыми на i срезы, где каждый срез {i} является определенным z, я мог бы иметь что-то похожее на это.Использование логической индексации для определенного набора строк в MATLAB
1,3,10
1,4,10
1,5,10
2,3,10
2,4,10
3,1,10
Для каждого x я хочу вернуть строки, содержащие значения max и min y. Так что в этом случае я хочу строки 1, 3, 4, 5, 6.
код я теперь выглядит так
idx = slice{i}(start:finish,2) == miny | slice{i}(start:finish,2) == maxy;
return = slice{i}(idx, :);
Но линия среза {я} (IDX, :) выглядит через весь массив с самого начала. Я хочу ограничить эту строку определенным подмножеством.
Что-то вроде
slice{i}(idx, start:finish)
, но это не работает.
Мне не хватает какого-либо синтаксиса или мне нужно подходить к подпрограмме по-другому? (Я знаю, что не предоставили достаточно информации для помощи в изменении подхода, но я предполагаю, что есть какой-то способ сделать это путем ограничения строк indicies)
редактировать:
Я нашел обходной путь, создав
dummy = slice{i}(start:finish, :);
, а затем просто возвращаемся к макету.
В начале вы можете использовать cell2mat преобразовать в числовой массив? С этим легче работать. –
Согласитесь с Benoit на этом. Итак, любая конкретная причина наличия массива ячеек для хранения таких данных? – Divakar
Отсутствие причины - просто было проще работать срез с помощью среза в массиве ячеек. Я посмотрю, легче ли это с числовым, я просто подумал, что мне не хватает простого кода кода – browser