catmask

Получите категориальную маску последовательности

Описание

seq = catmask(msk) возвращает категориальную маску последовательности, seq, на основе источника и свойств в msk.

пример

seq = catmask(msk,len) задает длину seq.

пример

seq = catmask(___,'OverlapAction',action) задает как signalMask соглашения с областями, имеющими различные значения категории то перекрытие.

пример

seq = catmask(___,'OverlapAction','prioritizeByList','PriorityList',idxlist) задает порядок в который msk категории приоритизированы, когда области с различными значениями категории перекрываются.

[seq,numroi,cats] = catmask(___) также возвращает numroi, вектор, содержащий число регионов, найденное для каждой из категорий, перечислен в cats.

Примеры

свернуть все

Рассмотрите табличную маску видимой области (ROI) с четырьмя необходимыми областями, охватывающими выборки пронумерованный от 2 до 30. Задайте подписи категорий как A и B. Используйте маску, чтобы создать signalMask объект.

roiTbl = table([2 5; 7 10; 15 25; 28 30],["A","B","B","A"]');

m = signalMask(roiTbl);

Извлеките категориальную маску из объекта, задающего длину последовательности 35. Выборки вне 30-го возвращены как <undefined>.

catSeq = catmask(m,35);

catSeq(max(roiTbl.Var1(end)):end)
ans = 6x1 categorical
     A 
     <undefined> 
     <undefined> 
     <undefined> 
     <undefined> 
     <undefined> 

Извлеките категориальную маску снова, но теперь задайте длину последовательности 8. Выборки вне восьмого удалены.

catSeq = catmask(m,8)
catSeq = 8x1 categorical
     <undefined> 
     A 
     A 
     A 
     A 
     <undefined> 
     B 
     B 

Рассмотрите 18 2 маска двоичных последовательностей. Используйте маску, чтобы создать signalMask объект. Пометьте категории A и B, в том порядке.

binSeqs = logical([ ...
    0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1;
    1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0]');

m = signalMask(binSeqs);
m.Categories = ["A" "B"];

Извлеките категориальную маску из объекта. Чтобы обработать перекрытие между категориями, присвойте выборки, совместно использованные этими двумя категориями к первой в списке, A.

seqA = catmask(m,'OverlapAction','PrioritizeByList');
seqA(binSeqs(:,1) & binSeqs(:,2))
ans = 4x1 categorical
     A 
     A 
     A 
     A 

Извлеките категориальную маску снова, но теперь обработайте перекрытие между категориями путем присвоения разделяемых выборок B с явным списком приоритетов.

seqB = catmask(m,'OverlapAction','PrioritizeByList', ...
    'PriorityList',[2 1]);
seqB(binSeqs(:,1) & binSeqs(:,2))
ans = 4x1 categorical
     B 
     B 
     B 
     B 

Обработайте перекрытие путем удаления областей меньше чем с тремя выборками. Отобразите модифицированную маску двоичной последовательности, которая заканчивается.

m.MinLength = 3;
binmask(m)'
ans = 2x18 logical array

   0   0   1   1   1   0   0   0   0   0   0   0   1   1   1   1   0   0
   0   0   0   0   0   1   1   1   1   0   0   0   0   0   0   0   0   0

Раньше разделяемые выборки присвоены категориям областей, которые остаются.

seqM = catmask(m);
seqM(binSeqs(:,1) & binSeqs(:,2))
ans = 4x1 categorical
     B 
     B 
     A 
     A 

Входные параметры

свернуть все

Маска сигнала в виде signalMask объект.

Пример: signalMask(table([2 4;6 7],["male" "female"]')) задает маску сигнала с male с тремя выборками область и 2D демонстрационный female область.

Пример: signalMask(categorical(["" "male" "male" "male" "" "female" "female" ""]',["male" "female"])) задает маску сигнала с male с тремя выборками область и 2D демонстрационный female область.

Пример: signalMask([0 1 1 1 0 0 0 0;0 0 0 0 0 1 1 0]','Categories',["male" "female"]) задает маску сигнала с male с тремя выборками область и 2D демонстрационный female область.

Выведите длину последовательности в виде целочисленного скаляра. Области вне len проигнорированы. Выход категориальная последовательность seq дополнен <missing> значения в этих случаях:

  • SourceType 'categoricalSequence' или 'binarySequences' и len больше длины исходной последовательности.

  • SourceType 'roiTable' и len больше максимального индекса области.

Когда RightExtension является ненулевым и SourceType 'categoricalSequence' или 'binarySequences', catmask расширяет области возможно вне длины последовательности, применяет все другие модификации на основе LeftExtension, LeftShortening, RightShortening, MergeDistance, и MinLength, и затем обрезает получившуюся последовательность до исходной длины последовательности, или до заданной длины len.

Как последний шаг, catmask управляет перекрытием на основе набора значений для 'OverlapAction', если тот аргумент задан.

Для получения дополнительной информации о продолжительности выхода, смотрите Предельную Модификацию области.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Способ иметь дело с перекрытием в виде 'error' или 'prioritizeByList'.

  • 'error'catmask выдает ошибку, если существуют перекрытия между областями с различными категориями.

  • 'prioritizeByList'catmask использует список приоритетов, заданный в idxlist иметь дело с перекрытиями между областями с различными категориями. Первая категория в списке имеет самый высокий приоритет, и все его выборки сохранены в случаях перекрытия. Вторая категория в списке следует, и его выборки сохранены в случаях перекрытия, не ранее разрешенных.

    Если idxlist не задан, catmask приоритизирует категории в том же порядке, как они появляются в Categories свойство msk.

Типы данных: char | string

Приоритеты категории в случаях перекрытия в виде вектора из целых чисел. Индексы в idxlist соответствуйте записям в Categories из msk и упорядочены приоритетом, с которым они должны быть обработаны, когда области с различными значениями категории перекрываются. idxlist должен содержать индексы для всех элементов в Categories. Первая категория в списке имеет самый высокий приоритет. Это означает это, когда области с различным перекрытием категорий, все значения самого высокого приоритета сохранены. Затем значения со следующим самым высоким приоритетом сохранены в остающихся неперекрывающихся выборках и так далее.

Если idxlist не задан, catmask приоритизирует категории в том же порядке, как они появляются в Categories свойство msk.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Категориальная маска последовательности, возвращенная как категориальный массив. Выборки в seq это не принадлежит необходимой области и не имеет никакого значения метки, установлены в пропавших без вести категориальных значений, отображенных как <undefined>. Для получения дополнительной информации смотрите categorical.

  • Если SourceType 'categoricalSequence' или 'binarySequences' и len не задан, затем seqs имеет ту же длину как исходная последовательность маски.

  • Если SourceType 'roiTable', затем len должен быть задан.

Для получения дополнительной информации о как свойства msk влияйте на длину seqs, смотрите Предельную Модификацию области.

Число регионов найдено для каждой из категорий в cats, возвращенный как вектор из целых чисел.

Список категорий, возвращенный как вектор из строк.

Введенный в R2020b