Matlab之数组、包含分配给类别的值函数categorical

2023-10-15 04:01

本文主要是介绍Matlab之数组、包含分配给类别的值函数categorical,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、功能

categorical 是为一组有限的离散类别(例如 High、Med 和 Low)赋值的数据类型。这些类别可以采用您指定的数学排序,例如 High > Med > Low,但这并非必须。分类数组可用来有效地存储并方便地处理非数值数据,同时还为数值赋予有意义的名称。分类数组的常见用法是用来指定构成表的各组行。

二、语法

语法1

B = categorical(A) 根据数组 A 创建分类数组。B 的类别是 A 的唯一值且经过排序。

语法2

B = categorical(A,valueset) 为 valueset 中的每个值创建一个类别。B 的类别与 valueset 的值具有相同的顺序。

您可以使用 valueset 来包含 A 中不存在的值的类别。反之,如果 A 包含 valueset 中不存在的任何值,则 B 的对应元素为未定义。

语法3

B = categorical(A,valueset,catnames) 通过将 valueset 中的类别值与 catnames 中的名称匹配来命名 B 中的类别。

语法4

B = categorical(A,___,Name,Value) 创建分类数组,其中通过一个或多个 Name,Value 对组参数指定其他选项。您可以包括上述语法中的任何输入参数。

例如,要指示类别采用数学排序,请指定 'Ordinal',true。

三、输入参数

A — 输入数组

数值数组 | 逻辑数组 | 分类数组 | 日期时间数组 | 持续时间数组 | 字符串数组 | 字符向量元胞数组

输入数组,指定为数值数组、逻辑数组、分类数组、日期时间数组、持续时间数组、字符串数组或字符向量元胞数组。

categorical 会删除作为字符串或字符向量的输入值中的前导和尾部空格。

如果 A 包含缺失值,则 B 的相应元素未定义,并显示为 <undefined>。categorical 函数可将下列值转换为未定义的类别值:

数值数组和持续时间数组中的 NaN

字符串数组中的缺失字符串 (<missing>) 或空字符串 ("")

字符向量元胞数组中的空字符向量 ('')

日期时间数组中的 NaT

分类数组中未定义的值 (<undefined>)

对于未定义的值,B 没有对应的类别。要为缺失值或未定义的值创建显式类别,必须在 catnames 中给出所需的类别名称,并在 valueset 中给出缺失值作为对应的值。

A 还可以是具有以下类方法的对象数组:

unique

eq

valueset — 类别

unique(A) (默认) | 由唯一值组成的向量

类别,指定为由唯一值组成的向量。valueset 的数据类型和 A 的数据类型必须相同,A 为字符串数组时除外。在这种情况下,valueset 可以是字符串数组或字符向量元胞数组。

categorical 会删除作为字符串或字符向量的 valueset 元素中的前导和尾部空格。

catnames — 类别名称

字符向量元胞数组 | 字符串数组

类别名称,指定为字符向量元胞数组或字符串数组。如果不指定 catnames 输入参数,categorical 将使用 valueset 中的值作为类别名称。

要将 A 中多个不同的值合并为 B 中的单个类别,请包括与这些值对应的、完全一样的名称。

四、示例

首先,创建包含温度读数、日期和台站标签的阵列。

Temps = [58; 72; 56; 90; 76];
Dates = {'2017-04-17';'2017-04-18';'2017-04-30';'2017-05-01';'2017-04-27'};
Stations = {'S1';'S2';'S1';'S3';'S2'};

将桩号转换为类别数组。

Stations = categorical(Stations)

显示类别。三个桩号标签是类别。

categories(Stations)

创建包含温度、日期和桩号标签的表。

T = table(Temps,Dates,Stations)

显示从站S2获取的读数。可以使用==运算符查找等于S2的桩号值。然后使用逻辑索引选择包含来自站点S2的数据的表行。

TF = (T.Stations == 'S2');
T(TF,:)

输出的结果:

这篇关于Matlab之数组、包含分配给类别的值函数categorical的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215218

相关文章

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)