tall
tall 配列の作成
説明
例
tall 配列の作成
データストアを tall 配列に変換します。
最初にデータ セットのデータストアを作成します。datastore(location)
を使用して、データ セットのファイルの場所を絶対パスまたは相対パスで指定してデータストアを作成できます。location
引数で以下を指定できます。
'airlinesmall.csv'
などの単一のファイル'*.csv'
などの同じ拡張子をもつ複数のファイル'C:\MyData'
などのファイル フォルダー全体
また、tabularTextDatastore
には、データストアの作成時にファイルおよびテキスト形式のプロパティを指定するオプションがいくつかあります。
airlinesmall.csv
データ セットのデータストアを作成します。'NA'
値を欠損データとして処理し、NaN
値と置き換えます。使用する変数の小さいサブセットを選択します。
varnames = {'ArrDelay', 'DepDelay', 'Origin', 'Dest'}; ds = tabularTextDatastore('airlinesmall.csv', 'TreatAsMissing', 'NA', ... 'SelectedVariableNames', varnames);
tall
を使用して、データストア内のデータの tall 配列を作成します。ds
内のデータが表形式であるため、結果は tall table になります。データが表形式ではない場合、tall
は代わりに tall cell 配列を作成します。
T = tall(ds)
T = Mx4 tall table ArrDelay DepDelay Origin Dest ________ ________ _______ _______ 8 12 {'LAX'} {'SJC'} 8 1 {'SJC'} {'BUR'} 21 20 {'SAN'} {'SMF'} 13 12 {'BUR'} {'SJC'} 4 -1 {'SMF'} {'LAX'} 59 63 {'LAX'} {'SJC'} 3 -2 {'SAN'} {'SFO'} 11 -1 {'SEA'} {'LAX'} : : : : : : : :
多くの一般的な MATLAB® 演算子と関数を使用して、tall 配列を処理できます。関数が tall 配列に対して動作するかを確認するには、関数リファレンス ページの末尾の「拡張機能」の節をチェックしてください。
tall 配列のサイズの計算
データストアを tall table に変換し、遅延計算を使用してそのサイズを計算してから、計算を実行して結果をメモリに返します。
最初に airlinesmall.csv
データ セットのデータストアを作成します。'NA'
値を欠損データとして処理し、NaN
値と置き換えます。いくつかの列のテキスト形式を設定して、これらが文字ベクトルの cell 配列として読み取られるようにします。データストアを tall table に変換します。
ds = tabularTextDatastore('airlinesmall.csv', 'TreatAsMissing', 'NA'); ds.SelectedFormats{strcmp(ds.SelectedVariableNames, 'TailNum')} = '%s'; ds.SelectedFormats{strcmp(ds.SelectedVariableNames, 'CancellationCode')} = '%s';
T = tall(ds)
T = Mx29 tall table Year Month DayofMonth DayOfWeek DepTime CRSDepTime ArrTime CRSArrTime UniqueCarrier FlightNum TailNum ActualElapsedTime CRSElapsedTime AirTime ArrDelay DepDelay Origin Dest Distance TaxiIn TaxiOut Cancelled CancellationCode Diverted CarrierDelay WeatherDelay NASDelay SecurityDelay LateAircraftDelay ____ _____ __________ _________ _______ __________ _______ __________ _____________ _________ _______ _________________ ______________ _______ ________ ________ _______ _______ ________ ______ _______ _________ ________________ ________ ____________ ____________ ________ _____________ _________________ 1987 10 21 3 642 630 735 727 {'PS'} 1503 {'NA'} 53 57 NaN 8 12 {'LAX'} {'SJC'} 308 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 1987 10 26 1 1021 1020 1124 1116 {'PS'} 1550 {'NA'} 63 56 NaN 8 1 {'SJC'} {'BUR'} 296 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 1987 10 23 5 2055 2035 2218 2157 {'PS'} 1589 {'NA'} 83 82 NaN 21 20 {'SAN'} {'SMF'} 480 NaN NaN 0 {'NA'} 0 NaN NaN NaN NaN NaN 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 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
tall table の表示は、MATLAB® で table 内にあるデータ行の数が判別していないことを示しています。
tall table のサイズを計算します。tall 配列のサイズの計算では、データを完全に通す必要があるため、MATLAB では値が即座には計算されません。代わりに、tall 配列の多くの操作と同様に、値とサイズが現在不明である未評価の tall 配列が結果になります。
s = size(T)
s = 1x2 tall double row vector ? ?
関数 gather
を使用して、遅延計算を実行して結果をメモリに返します。size
で返される結果は非常に小さい 1 行 2 列のベクトルで、メモリに収まります。
sz = gather(s)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.68 sec Evaluation completed in 0.85 sec
sz = 1×2
123523 29
gather
を縮小されていない tall 配列に対して使用すると、結果がメモリに収まらない場合があります。gather
で返される結果がメモリに収まるかどうかが不明な場合、gather(head(X))
または gather(tail(X))
を使用して、計算結果のごく一部だけをメモリに返します。
インメモリ配列から tall 配列への変換
乱数のインメモリ配列を作成し、tall 配列に変換します。この方法でインメモリ配列から tall 配列を作成すると、新しいプログラムのデバッグまたはプロトタイピングに役立ちます。インメモリ配列は、引き続き標準のメモリ制約により制限され、tall 配列に変換された後もメモリの制限を超えて拡張できません。
A = rand(100,4); tA = tall(A)
tA = 100x4 tall double matrix 0.8147 0.1622 0.6443 0.0596 0.9058 0.7943 0.3786 0.6820 0.1270 0.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 0.9390 0.0967 0.2785 0.2630 0.8759 0.8181 0.5469 0.6541 0.5502 0.8175 : : : : : : : :
R2019b 以降のリリースでは、インメモリ配列を tall 配列に変換すると、データの一時コピー用の追加メモリなしで配列の計算を実行できます。たとえば、次のコードは大きな行列のデータを正規化してから、すべての行と列の合計を計算します。この計算のインメモリ バージョンでは、配列を格納しなければならないうえに、配列の一時コピーを作成するために十分なメモリも必要です。
N = 5000; tA = tall(rand(N)); tB = tA - mean(tA); S = gather(sum(tB, [1,2]))
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 0.39 sec - Pass 2 of 2: Completed in 0.52 sec Evaluation completed in 1.5 sec
S = -1.0004e-11
tA
を格納するために十分なメモリが確保されるように N
の値を調整したが、コピー用にはメモリが不足している場合でも、計算は正常に実行されます。
入力引数
ds
— 入力データストア
datastore オブジェクト
入力データストア。datastore オブジェクトとして指定します。データ セットに datastore オブジェクトを作成する方法の詳細については、データストアを参照してください。
tall 配列で使用できるのは確定的なデータストアのみです。つまり、データストアで read
を使用する場合、reset
を使用してデータストアをリセットしてから、データストアを再度読み込みます。返されるデータはどちらの場合も同じでなければなりません。確定的でないデータストアが含まれる tall 配列の計算では、予測できない結果が生じる可能性があります。詳細については、ファイル形式またはアプリケーション用のデータ ストアの選択を参照してください。
例: ds = tabularTextDatastore('airlinesmall.csv')
は単一のファイルを指定します。
例: ds = tabularTextDatastore('*.csv')
は .csv
ファイルの集合を指定します。
例: ds = spreadsheetDatastore('C:\MyData')
は、スプレッドシート ファイルのフォルダーを指定します。
例: ds = datastore('hdfs:///data/')
は HDFS ファイル システム内のデータ セットを指定します。
A
— インメモリ変数
配列
インメモリ変数。配列として指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| table
| timetable
| string
| cell
| categorical
| datetime
| duration
| calendarDuration
複素数のサポート: あり
出力引数
t
— tall 配列
配列
tall 配列。次の型のいずれかとして返されます。
データストアを変換する場合、
t
は表形式データストアの tall table または tall timetable です。それ以外の場合、t
は tall cell 配列です。インメモリ配列を変換する場合、
t
の基となるデータ型はclass(A)
と同じです。
tall 配列の効率的な処理方法の詳細については、tall 配列の遅延評価を参照してください。
ヒント
以下で tall 配列を使用する方法については、他の製品による tall 配列の拡張を参照してください。
Statistics and Machine Learning Toolbox™
Parallel Computing Toolbox™
MATLAB Parallel Server™
Database Toolbox™
MATLAB Compiler™
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
Parallel Computing Toolbox をインストールしている場合、tall
を使用すると、MATLAB によってユーザーのローカル マシン上に複数のワーカーからなる並列プールが自動的に開かれます。MATLAB では、使用可能なワーカー全体で計算が実行されます。クラスターへのスケール アップなど、並列基本設定を使用して並列動作を制御します。
詳細については、並列プールでの tall 配列の使用 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2016b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)