MATLAB 基础知识 数据类型 分组数组 使用乘法合并分类数组

本文说明如何使用 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> 

有序分类数组的笛卡尔积

合并两个有序分类数组。仅当 A 和 B 都是有序的,C 才是有序分类数组。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 -' }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结冰架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值