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

В этом примере показано, как использовать 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 isundefined.

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 -' }

Смотрите также

| | |

Связанные примеры

Больше о