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