Main Content

duration

固定長の単位で表す時間の長さ

説明

"duration 配列" の値は、時間、分、秒などの固定長の単位で経過時間を表します。また、固定長 (24 時間) の日数や、固定長 (365.2425 日) の年数でも経過時間を作成できます。

duration 配列は、数値配列の操作と同様に操作できます。duration 配列は、加算、減算、並べ替え、比較、連結およびプロットができます。duration 配列を使用すると、時間や分などの時間単位が関係する datetime 配列の計算が簡略化されます。

The datetime data type represents points in time, while the duration and calendarDuration data types represent elapsed time using fixed-length and calendar time units, respectively.

作成

時間単位を指定した duration 配列は、関数 yearsdayshoursminutessecondsmilliseconds を使用して作成できます。たとえば、1、2、3 時間の経過時間をもつ配列を作成するには、関数 hours を使用します。

D = hours(1:3)
D = 

  1×3 duration array

   1 hr   2 hr   3 hr

以下に説明する関数 duration を使用して、duration 配列を作成することもできます。

説明

D = duration(H,MI,S)HMI および S で指定される時間、分、秒の数値を含む数値配列から duration 配列を作成します。

D = duration(H,MI,S,MS) は、duration 配列に MS で指定されたミリ秒を追加します。

D = duration(X) は数値行列から duration の列ベクトルを作成します。

D = duration(TimeStrings) は経過時間を表すテキストを duration 配列に変換します。TimeStrings'hh:mm:ss' または 'dd:hh:mm:ss' の形式のいずれかを使用して時間を表さなければなりません。

D = duration(TimeStrings,'InputFormat',infmt) は、infmt で指定された形式を使用してテキストを変換します。

D = duration(___,'Format',displayFormat) は、D の表示形式を追加指定します。このプロパティは、D の表示を変更しますが、その値は変更しません。この構文では、前述の構文の引数のいずれかを使用できます。

入力引数

すべて展開する

時間、分、秒の配列。数値配列として指定します。これらの配列はいずれもスカラーにすることができます。スカラーではない配列はすべて同じサイズでなければなりません。

例: duration(12,45,7) は、12 時間 45 分 7 秒の duration を返します。

ミリ秒の配列。数値配列として指定します。MS はスカラーであるか、入力引数 HMI、および S と同じサイズでなければなりません。

例: duration(12,45,30,35) は、12 時間 45 分 30 秒 35 ミリ秒の duration を返します。

入力行列。数値配列として指定します。X には、それぞれ時間数、分数、秒数の数値を含む 3 列がなければなりません。

例: duration([12 30 16]) は、12 時間 30 分 16 秒の duration を返します。

経過時間を表すテキスト。文字ベクトル、文字ベクトルの cell 配列または string 配列として指定します。関数 duration は、TimeStrings の形式を 'hh:mm:ss' または 'dd:hh:mm:ss' の形式のいずれかに一致させようとします。ここで ddhhmmss は日、時間、分、秒を表します。最後のフィールドには、小数点以下の桁を含めて秒数を小数で表すことができます。

形式が既知の場合は、'InputFormat' とそれに対応する infmt 値を指定します。

例: duration('12:30:16') は、12 時間 30 分 16 秒の duration を返します。

例: duration('00:05:23.86') は、5 分 23.86 秒の duration を返します。

例: duration({'01:34:21';'23:16:54'}) は、2 つの duration を含む列ベクトルを返します。

入力テキストの形式。文字ベクトルまたは string スカラーとして指定します。

次のいずれかの形式で infmt を指定します。ここで、ddhhmmss は日、時間、分、秒を表します。

  • 'dd:hh:mm:ss'

  • 'hh:mm:ss'

  • 'mm:ss'

  • 'hh:mm'

  • 最初の 3 つの形式のいずれかに、秒の小数部を表す文字 S (最大 9 桁) を加えた 'hh:mm:ss.SSSS' のような形式

プロパティ

すべて展開する

表示形式。文字ベクトルまたは string スカラーとして指定します。この形式は、時間単位を伴う単一の数値 (年数を表す 'y' など)、またはデジタル タイマー (時間数、分数、秒数を表す 'hh:mm:ss' など) のいずれかを指定できます。

時間単位を伴う数値には、次のいずれかを指定します。

  • 'y' — 固定長の年数。ここで、1 年は 365.2425 日に等しい

  • 'd' — 固定長の日数。ここで、1 日は 24 時間に等しい

  • 'h' — 時間数

  • 'm' — 分数

  • 's' — 秒数

デジタル タイマー形式には、次のいずれかを指定します。

  • 'dd:hh:mm:ss'

  • 'hh:mm:ss'

  • 'mm:ss'

  • 'hh:mm'

  • 最初の 3 つの形式のいずれかに、秒の小数部を表す文字 S (最大 9 桁) を加えた 'hh:mm:ss.SSSS' のような形式

例: D.Format = 'm'D の各値を分数として表示します。

すべて折りたたむ

datetime 値を作成します。

D = datetime('today')
D = datetime
   25-Jan-2024

日付成分は同じだが時刻成分の異なる各値を含む datetime 配列を作成します。このような配列を作成する便利な方法の 1 つは、duration 配列を D に加算することです。

まず、関数 hours を使用して時間数の配列を作成します。各要素は、その前の要素よりも 2 時間長くなります。

H = hours(0:2:6)
H = 1x4 duration
   0 hr   2 hr   4 hr   6 hr

次に、DH を加算します。

T = D + H
T = 1x4 datetime
   25-Jan-2024 00:00:00   25-Jan-2024 02:00:00   25-Jan-2024 04:00:00   25-Jan-2024 06:00:00

datetime 配列と固定長の時間の算術演算に duration 配列を使用します。

時間数、分数、秒数を入力引数として指定して duration 配列を作成します。2 番目の引数が配列であるため、出力 D は同じサイズの配列です。

D = duration(1,30:33,0)
D = 1x4 duration
   01:30:00   01:31:00   01:32:00   01:33:00

3 列の数値行列を作成します。列はそれぞれ時間、分、秒を表します。

X = [12 17 54;9 32 3]
X = 2×3

    12    17    54
     9    32     3

行列を duration 配列に変換します。

D = duration(X)
D = 2x1 duration
   12:17:54
   09:32:03

時間、分、秒で期間を表す文字ベクトルを変換します。

T = '6:34:12';
D = duration(T)
D = duration
   06:34:12

文字ベクトルの cell 配列を変換します。

T = {'12:54:37','8:03:12'};
D = duration(T)
D = 1x2 duration
   12:54:37   08:03:12

日の成分も含むテキストを変換します。表示用に、duration 配列の既定の形式は日数を時間数に変換します。

T = '1:00:54:21';
D = duration(T)
D = duration
   24:54:21

経過時間を表すテキストの形式を指定してから、それらを duration 配列に変換します。

文字ベクトルを変換します。入力形式は分と秒を表します。出力引数は duration 値で、その形式は時間、分、秒を表します。

T = '78:34';
infmt = 'mm:ss';
D = duration(T,'InputFormat',infmt)
D = duration
   01:18:34

分、秒、および秒の小数部 3 桁を表す形式をもつ文字ベクトルの cell 配列を作成します。

infmt = 'mm:ss.SSS';
T = {'1:34.862' '67:07.218'}
T = 1x2 cell
    {'1:34.862'}    {'67:07.218'}

T を duration 配列に変換します。時間、分、秒、および秒の小数部を表す duration 配列の形式を指定します。

outfmt = 'hh:mm:ss.SSS';
D = duration(T,'InputFormat',infmt,'Format',outfmt)
D = 1x2 duration
   00:01:34.862   01:07:07.218

行列から duration 配列を作成します。3 つの列は、それぞれ時間数、分数、秒数を指定します。分数と秒数を示すデジタル タイマー形式で値を表示します。

X = [2 3 16;1 5 59;1 45 0]
X = 3×3

     2     3    16
     1     5    59
     1    45     0

D = duration(X,'Format','mm:ss')
D = 3x1 duration
   123:16
    65:59
   105:00

ヒント

  • duration 配列を受け入れる関数、または返す関数の詳細については、日付と時刻を参照してください。

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2014b で導入