Объедините категориальные массивы с помощью умножения

В этом примере показано, как использовать times функция для объединения категориальных массивов, включая порядковые категориальные массивы и массивы с неопределенными элементами. Когда вы звоните times в двух категориальных массивах выход представляет собой категориальный массив с новыми категориями. Набор новых категорий является набором всех упорядоченных пар, созданных из категорий входных массивов или Декартова продукта. times формирует каждый элемент массива выхода как упорядоченную пару соответствующих элементов массива входа. Массив выхода имеет тот же размер, что и вход массивы.

Объединение двух категориальных массивов

Объедините два категориальных массивов с помощью times. Входные массивы должны иметь одинаковое количество элементов, но могут иметь разное количество категорий.

A = categorical({'blue','red','green'});
B = categorical({'+','-','+'});
C = A.*B
C = 1x3 categorical
     blue +      red -      green + 

Декартовый продукт категорий

Показать категории C. Все категории являются упорядоченными парами, которые могут быть созданы из категорий A и B, также известный как декартов продукт.

categories(C)
ans = 6x1 cell
    {'blue +' }
    {'blue -' }
    {'green +'}
    {'green -'}
    {'red +'  }
    {'red -'  }

Как следствие A.*B не равен B.*A.

D = B.*A
D = 1x3 categorical
     + blue      - red      + green 

categories(D)
ans = 6x1 cell
    {'+ blue' }
    {'+ green'}
    {'+ red'  }
    {'- blue' }
    {'- green'}
    {'- red'  }

Умножение с неопределенными элементами

Объедините два категориальных массивов. Если либо A или B имеют неопределенный элемент, соответствующий элемент C является undefined.

A = categorical({'blue','red','green','black'});
B = categorical({'+','-','+','-'});
A = removecats(A,{'black'});
C = A.*B
C = 1x4 categorical
     blue +      red -      green +      <undefined> 

Декартов продукт порядковых категориальных массивов

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

A = categorical({'blue','red','green'},{'green','red','blue'},'Ordinal',true);
B = categorical({'+','-','+'},'Ordinal',true);
C = A.*B;
categories(C)
ans = 6x1 cell
    {'green +'}
    {'green -'}
    {'red +'  }
    {'red -'  }
    {'blue +' }
    {'blue -' }

См. также

| | |

Похожие примеры

Подробнее о