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

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

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

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

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

Декартово произведение категорий

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

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

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

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

categories(D)
ans = 6x1 cell array
    {'+ 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 array
     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 array
    {'green +'}
    {'green -'}
    {'red +'  }
    {'red -'  }
    {'blue +' }
    {'blue -' }

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

| | |

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

Больше о