主要内容

matlab.tall.transform

变换阵列运用函数处理的数据块

描述

例子

助教= matlab.tall.transform (fcn,tX)应用函数处理fcn对每一个的数组tX并返回一个数组转换,助教

例子

助教= matlab.tall.transform (fcn,tX,,……)指定多个数组tX,泰,…输入的fcn。每个数组相同的行手术fcn;例如,fcn (tX (n: m),泰(n: m,:))。高度的输入传递到每个调用之一fcn

例子

(助教,结核病,……)= matlab.tall.transform (fcn,tX,,……),在那里fcn是一个函数返回多个输出,返回数组助教,结核病,…,每一个对应的一个输出参数fcn。所有输出的fcn必须有相同的高度,和输出的数量必须相同要求的数量吗matlab.tall.transform

例子

(助教,结核病,……)= matlab.tall.transform (___、“OutputsLike”{巴勒斯坦权力机构,PB,……})指定输出助教,结核病,…有相同的数据类型作为原型数组PA、PB,……,分别。您可以使用任何输入参数的组合在以前的语法。

例子

全部折叠

使用matlab.tall.transform建立一个高0与另一个类似的属性数组的数组。

创建一个高表airlinesmall.csv数据集,数据包含的信息到达和离开的时间我们的航班。提取ArrDelay变量,这是一个向量的延迟到来。

ds = tabularTextDatastore (“airlinesmall.csv”,“TreatAsMissing”,“NA”);ds。SelectedVariableNames = {“ArrDelay”“DepDelay”};tt =高(ds);tX = tt.ArrDelay
tX = mx₁高双列向量8 8 21 13 4 59 3 11::

写一个匿名函数创建一个零的数组相同的大小和数据类型作为输入。

zerosLike = @() 0(大小(),“喜欢”,);

使用matlab.tall.transform应用zerosLike函数向量的延迟到来。结果是一个高大的向量相同的大小,但其值都是零。

s = matlab.tall。变换(zerosLike tX)
mx₁高双列向量s = 0 0 0 0 0 0 0 0::

计算的平均向量的总航班延误抵达和起飞延误。

创建一个高表airlinesmall.csv数据集,数据包含的信息到达和离开的时间我们的航班。提取ArrDelayDepDelay变量向量的抵达和起飞延误。

ds = tabularTextDatastore (“airlinesmall.csv”,“TreatAsMissing”,“NA”);ds。SelectedVariableNames = {“ArrDelay”“DepDelay”};tt =高(ds);tX = tt.ArrDelay;泰= tt.DepDelay;

meanDelay功能连接的输入向量为一个矩阵,总结每一行中的值(忽略nan),然后计算平均值。显示这个函数文件的内容。

类型meanDelay
函数D = meanDelay (a, b) X = [b];Y =总和(X 2 ' omitnan ');D =意味着(Y);结束

使用matlab.tall.transform应用meanDelay函数中的每个数据块tX。结果是平均总延迟在每个数据块。

d = matlab.tall。变换(tX, @meanDelay泰)
d = 7 x1高双列向量14.0621 11.1639 17.2311 15.1852 12.5860 19.8596 14.4036

这个操作假定的结果减少每个数据块标量值可以在内存中。对于非常大的数据集,数据集使用一小块大小,这个假设可能不是真的。

发现的最大价值和索引值在每一行的数据。

创建一个高表airlinesmall.csv数据集,数据包含的信息到达和离开的时间我们的航班。提取ArrDelayDepDelay变量向量的抵达和起飞延误。

ds = tabularTextDatastore (“airlinesmall.csv”,“TreatAsMissing”,“NA”);ds。SelectedVariableNames = {“ArrDelay”“DepDelay”};tt =高(ds);tX = tt.ArrDelay;泰= tt.DepDelay;

maxDelay功能连接的输入向量,然后找到最大到达或离开延迟时间和它的列索引。显示文件的内容。

类型maxDelay
函数[M,我]= maxDelay (A, B) X = [B];[M,我]= max (X, [], 2);结束

使用matlab.tall.transform应用maxDelay函数中的每个数据块tX。结果是每一行的最大到达或离开延迟数据,以及一个索引向量表示这列最大值。索引1表明,到达延迟这一行比较大,和指数2表明出发的延迟比较大。

idx [M] = matlab.tall。变换(tX, @maxDelay泰)
M = mx₁高双列向量12 8 21 13 4 63 3 11::idx = mx₁高双列向量2 1 1 1 1 2 1 1::

使用“OutputsLike”返回一个表的选项matlab.tall.transform不同的变量输入表。

创建一个高表有两个变量的随机值。

T =高(表(兰德(1)e6, 1),兰德(1 e6, 1)))
T = 1000000 x2高表Var1 Var2 ____ ____ 0.81472 0.90399 0.90579 0.94095 0.12699 0.80252 0.91338 0.24205 0.63236 0.97566 0.09754 0.31723 0.2785 0.81279 0.54688 0.69743::::

这个函数tableDiff计算两个输入表变量之间的区别并添加结果表中作为一个新的变量。显示文件的内容。

类型tableDiff
函数兜售= tableDiff(锡)d =锡。Var2 - Tin.Var1;锡。Var3 = abs (d);兜售=锡;结束

使用matlab.tall.transform应用tableDiff函数中的每个数据块T。因为输出表有不同的变量从输入表,使用“OutputsLike”名称-值对原型表提供类似的变量作为输出(三个变量默认名称Var1,Var2,Var3)。

Z = matlab.tall。变换(@tableDiff T“OutputsLike”,{表(1,1,1)})
Z = Mx3高表Var1 Var2 Var3 ____ ____ ________ 0.81472 0.90399 0.089267 0.90579 0.94095 0.035156 0.12699 0.80252 0.67553 0.91338 0.24205 0.67133 0.63236 0.97566 0.3433 0.09754 0.31723 0.21969 0.2785 0.81279 0.53429 0.54688 0.69743 0.15054::::::

输入参数

全部折叠

应用变换函数,指定为一个函数处理或匿名函数。每个输出的fcn必须是相同的类型作为第一个输入tX。您可以使用“OutputsLike”选择返回输出不同的数据类型。如果fcn返回一个以上的输出,那么输出必须都有相同的高度。

一般功能的签名fcn

(a, b, c,……)= fcn(x, y, z, ...)
fcn必须满足这些要求:

  1. 输入参数——输入(x, y, z,……)是装入内存的数据块。从各自的提取数据产生的块高输入数组(tX,泰,tZ,…)。输入(x, y, z,……)满足这些属性:

    • 所有的(x, y, z,……)有相同的大小在任何允许扩张后的第一个维度。

    • 的数据块(x, y, z,……)来自同一指数在高维度,假设高数组nonsingleton在高维度。例如,如果tXnonsingleton在高维度,那么第一组块可以吗x = tX (1:20000:)y =泰(1:20000:)

    • 如果第一个维度的(tX,泰,tZ,…)有一个大小1,那么相应的块(x, y, z,……)包括高数组中的所有数据。

  2. 输出参数——输出(a, b, c,……)是装入内存块,发送给相应的输出(助教、结核,tC,…)。输出(a, b, c,……)满足这些属性:

    • 所有的(a, b, c,……)必须具有相同的大小在第一维度。

    • 所有的(a, b, c,……)垂直连接有各自的结果之前的电话fcn

    • 所有的(a, b, c,……)被发送到相同的索引在第一维度在各自目的地输出数组。

  3. 功能规则- - - - - -fcn必须满足功能规则:

    • F ([inputs1;inputs2]) = = (F (inputs1);F (inputs2)):应用功能连接的输入应该是一样的应用函数分别输入然后连接结果。

  4. 空输入——确保fcn可以处理的输入0的高度。空输入可能发生当一个文件是空的或如果你已经做了很多过滤数据。

例如,该函数接受两个输入数组,广场,并返回两个数组输出:

函数[xx, yy] = sqInputs (x, y) xx = x ^ 2;yy = y ^ 2;结束
保存这个函数访问的文件夹之后,您可以调用函数来广场tX使用这个命令:
(助教、结核病)= matlab.tall.transform (tX, @sqInputs泰)

例子:tA = matlab.tall.transform (@ x (x)。* 2, tX)指定一个匿名函数的值相乘tX由2。

例子:tC = matlab.tall.transform (tX, @plus泰)指定一个函数处理@plus添加两个数组。

数据类型:function_handle

输入数组,指定为标量、向量,矩阵或多维数组。输入数组作为输入指定的函数fcn。每个输入数组tX,泰,…必须有高度兼容。两个输入兼容的高度时,他们有相同的高度,或者当一个输入的高度。

样机的输出数组,指定为数组。当你指定“OutputsLike”,输出数组助教,结核病,…返回的matlab.tall.transform有相同的数据类型作为指定的数组{PA、PB,…}

例子:tX, tA = matlab.tall.transform (fcn OutputsLike, {int8 (1)});,在那里tX是一个双精度数组,返回一个作为int8而不是

输出参数

全部折叠

输出数组,返回标量、向量,矩阵或多维数组。如果任何输入matlab.tall.transform高,那么所有输出参数也高。否则,输出参数都是内存中的数组。

大小和输出数组的数据类型取决于指定的函数fcn。一般来说,输出助教,结核病,…都必须具有相同的数据类型作为第一个输入X。然而,您可以指定“OutputsLike”返回不同的数据类型。输出数组助教,结核病,…都有相同的高度。

更多关于

全部折叠

高的组块

当您创建一个高大从数据存储阵列,底层数据存储便于计算期间的运动数据。离散的数据移动棋子,每个块是一组连续的行可以装入内存。例如,一个块的一个二维数组(如表)X (n: m:),对于一些下标n。每个块的大小是基于价值的ReadSize房地产的数据存储,但大小的块可能并不完全。的目的matlab.tall.transform,一个高大的数组被认为是许多这样的块的垂直连接:

例如,如果您使用总和函数的变换函数,结果是之和每一块。因此,而不是返回一个标量值的和元素,结果是一个向量长度等于块的数量。

ds = tabularTextDatastore (“airlinesmall.csv”,“TreatAsMissing”,“NA”);ds。SelectedVariableNames = {“ArrDelay”“DepDelay”};tt =高(ds);tX = tt.ArrDelay;f = @ (x)和(x,“omitnan”);s = matlab.tall。变换(f, tX);s =收集(s)
s = 140467 101065 164355 135920 111182 186274 21321

版本历史

介绍了R2018b