主要内容

高的

创建高数组

描述

实例

T=高(ds)在数据存储上创建一个高数组ds.

  • 如果ds是用于表格数据的数据存储(以便readall数据存储返回表或时间表的方法),然后T是高表或高时间表,具体取决于数据存储配置为返回的内容。表格数据是以矩形方式排列的数据,每行具有相同数量的条目。

  • 否则T是一个高单元阵列。

实例

T=高(A.)转换内存中的数组A.排成一排。的基础数据类型T(甲)级。此语法在需要快速创建高数组时非常有用,例如用于调试或原型算法。

在R2019b及后续版本中,可以将内存中的数组强制转换为高数组,以便对数组进行更有效的操作。转换成一个高大的阵列后,MATLAB®避免对整个阵列进行临时复制,并在较小的块中处理数据。这使您能够在阵列上执行更广泛的操作,而不会耗尽内存。

例子

全部崩溃

将数据存储转换为高数组。

首先,为数据集创建一个数据存储。可以使用指定数据集的完整文件位置或相对文件位置数据存储(位置)创建数据存储。的地方参数可以指定:

  • 单个文件,如“airlinesmall.csv”

  • 具有相同扩展名的多个文件,例如“*.csv”

  • 一个完整的文件文件夹,例如“C:\MyData”

tabularTextDatastore在创建数据存储时,还可以使用多个选项指定文件和文本格式属性。

为数据库创建数据存储airlinesmall.csv数据集处理“不”值作为缺少的数据,以便将其替换为值。选择要处理的变量的一小部分。

变量名={“延迟”,“德布雷”,“起源”,“桌子”}; ds=表格数据存储(“airlinesmall.csv”,“治疗减少”,“不”,...“SelectedVariableNames”,varnames);

使用高的为数据存储中的数据创建高数组。因为ds是表格,结果是一个高表格。如果数据不是表格,则高的而是创建一个高单元数组。

T=高(ds)
T = Mx4高表ArrDelay DepDelay起源服务台  ________ ________ _______ _______ 8 12{“宽松”}{‘SJC} 8 1{‘SJC}{“钻”}21 20{‘圣’}{SMF的}13 12{“钻”}{‘SJC} 4 1 {SMF的}{“宽松”}59 63{“宽松”}{‘SJC} 3 2{‘圣’}{“旧金山”}11 1{‘海’}{松懈 '} : : : : : : : :

您可以使用许多常见的MATLAB®运算符和函数来处理高阵列。要查看函数是否适用于高阵列,请检查扩展能力函数参考页底部的部分。

将数据存储转换为高表,使用延迟计算计算其大小,然后执行计算并将结果返回内存。

首先,为airlinesmall.csv数据集处理“不”值作为缺少的数据,以便将其替换为值。设置一些列的文本格式,以便将它们作为字符向量的单元格数组读取。将数据存储转换为高表。

ds=表格数据存储(“airlinesmall.csv”,“治疗减少”,“不”);ds.SelectedFormats{strcmp(ds.SelectedVariableNames,“TailNum”)} =“%s”;ds.SelectedFormats{strcmp(ds.SelectedVariableNames,“取消代码”)} =“%s”;
T=高(ds)
T = Mx29高表Year Month DayofMonth DayOfWeek DepTime CRSDepTime ArrTime CRSArrTime uniqucarrier FlightNum TailNum ActualElapsedTime CRSElapsedTime AirTime ArrDelay DepDelay Origin Dest Distance TaxiIn TaxiOut Cancelled CancellationCode altered CarrierDelay WeatherDelay NASDelay SecurityDelay LateAircraftDelay _________ ___________________ _______ __________ _______ __________ _____________ _________ _______ _________________ ______________ _______ ________ ________ _______ _______ ________ ______ _______ _________ ________________ ________ ____________ ____________ ________ _____________ _________________ 1987 21 642 630 735 727 1503{“PS”}{“NA”}53 57南8 12{“宽松”}{‘SJC} 308年南南{“NA”}0南南南南南26 1 1021 1020 1124 1987 1116 1550{“PS”}{“NA”}63 56南8 1{‘SJC}{“钻”}296年南南{“NA”}0南南南南南1987 10 23 5 2055 2035 2218 2157 1589{“PS”}{“NA”}83 82南21 20{‘圣’}{SMF的}480年南南{“NA”}0南南南南南1987 10 23 5 1332 1320 1431 1418{“PS”}1655 {'NA'} 59 58 NaN 13 12 {'BUR'} {'SJC'} 296 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 1987 10 22 4 629 630 746 742 {'PS'} 1702 {'NA'} 77 72 NaN 4 -1 {'SMF'} {'LAX'} 373 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 1987 10 28 3 1446 1343 1547 1448 {'PS'} 1729 {'NA'} 61 65 NaN 59 63 {'LAX'} {'SJC'} 308 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 1987 10 8 4 928 930 1052 1049 {'PS'} 1763 {'NA'} 84 79 NaN 3 -2 {'SAN'} {'SFO'} 447 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 1987 10 10 6 859 900 1134 1123 {'PS'} 1800 {'NA'} 155 143 NaN 11 -1 {'SEA'} {'LAX'} 954 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

高表的显示表明MATLAB®尚不知道表中有多少行数据。

计算高桌子的大小。由于计算高阵列的大小需要完全通过数据,因此MATLAB不会立即计算该值。相反,与大多数使用高数组的操作一样,结果是未计算的高数组,其值和大小目前未知。

s=尺寸(T)
s=1x2高双列向量?

使用聚集函数执行延迟计算并在内存中返回结果。返回的结果大小是一个非常小的1×2向量,适合内存。

sz=聚集(s)
using the Local MATLAB Session: - Pass 1 of 1: Completed in 1.3 sec
深圳=1×2123523 29

如果你使用聚集在未缩减的高数组上,则结果可能不适合内存。如果您不确定聚集可以放入内存,使用聚集(头(X))聚集(尾部(X))只将计算结果的一小部分存入内存。

创建随机数的内存中数组,然后将其转换为高数组。以这种方式从内存中数组创建高数组对于调试或原型化新程序非常有用。内存中数组仍受正常内存约束的约束,即使将其转换为高数组,其增长也不能超过内存的限制里。

一个=兰德(100 4);tA =高(A)
tA=100x4高双矩阵0.8147 0.1622 0.6443 0.0596 0.9058 0.7943 0.3786 0.6820 0.1270.3112 0.8116 0.0424 0.9134 0.5285 0.5328 0.0714 0.6324 0.1656 0.3507 0.5216 0.0975 0.6020.9390 0.0967 0.2785 0.2630.8759 0.8181 0.5469 0.6541 0.5502 0.8175:::

在R2019b及更高版本中,当您将内存中的数组转换为高数组时,您可以对该数组执行计算,而无需为数据的临时副本提供额外内存。例如,此代码规范化大型矩阵中的数据,然后计算所有行和列的总和。此计算的内存版本nEED不仅要存储阵列,而且要有足够的内存来创建阵列的临时副本。

N=5000;tA=高(兰特(N));tB=tA-平均值(tA);S=聚集(总和(tB,[1,2]))
使用本地MATLAB会话评估tall表达式:-第1次通过(共2次):在0.46秒内完成-第2次通过(共2次):在0.52秒内完成评估在1.6秒内完成
S=-1.0004e-11

如果您调整N这样就有足够的内存来存储助教,但内存不足,无法复制,计算仍会成功执行。

输入参数

全部崩溃

输入数据存储,指定为数据存储对象。请参阅数据存储有关为数据集创建数据存储对象的详细信息。

高阵列仅适用于确定性数据存储在数据存储上,使用重置数据存储重置,然后再次读取数据存储,则返回的数据在这两种情况下必须相同。涉及不确定数据存储的高数组计算可能会产生不可预测的结果。请参阅为文件格式或应用程序选择数据存储了解更多信息。

例子:ds=tablertextdatastore('airlinesmall.csv')指定单个文件。

例子:ds=tablertextdatastore('*.csv')指定以下项的集合:.csv文件夹。

例子:ds=电子表格数据存储('C:\MyData')指定电子表格文件的文件夹。

例子:ds=数据存储('hdfs:///data/')指定HDFS文件系统中的数据集。

内存中变量,指定为数组。

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的|桌子|时间表|一串|单间牢房|明确的|日期时间|期间|日历持续时间
复数支持:金宝app

输出参数

全部崩溃

高数组,作为以下类型之一返回:

  • 在转换数据存储时,T是表格数据存储的高表格或高时间表。否则,T是一个高单元阵列。

  • 转换内存中数组时,的基础数据类型T(甲)级.

看见塔式阵列的延迟评估有关如何有效使用高阵列的信息,请参见。

提示

扩展能力

高阵
使用行数超过内存容量的数组进行计算。

R2016b中引入