Этот пример показывает, как использовать функцию 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 -' }
categorical
| categories
| summary
| times