resize
説明
は、B = resize(A,m)A の末尾側に要素を追加または削除することで、A をサイズ m にサイズ変更します。たとえば、m がスカラーの場合、次のようになります。
Aがベクトルの場合、resize(A,m)はAを長さmにパディングまたはトリミングします。Aが行列、table、または timetable の場合、resize(A,m)はAをm行にパディングまたはトリミングします。Aが多次元配列である場合、resize(A,m)は、サイズが 1 でない最初の次元に沿って、mで指定されたサイズにAをパディングまたはトリミングします。
m がベクトルの場合、m の各要素は B の対応する次元のサイズを表します。
は、名前と値の引数を 1 つ以上使用して、サイズ変更に関する追加のパラメーターを指定します。たとえば、B = resize(A,m,Name=Value)resize(A,m,Pattern="circular") の場合、m が操作次元の A のサイズより大きいと、入力データを循環的に繰り返してサイズ変更します。
例
4 要素の列ベクトルを作成して、そのベクトルを 6 要素にサイズ変更します。既定で、resize 関数は数値ベクトルの末尾側にゼロをパディングします。
A = [1; 3; 5; 7]; B1 = resize(A,6)
B1 = 6×1
1
3
5
7
0
0
ベクトルを 2 要素にサイズ変更します。既定では、resize は末尾側の要素を削除します。
B2 = resize(A,2)
B2 = 2×1
1
3
異なる長さの 3 つのベクトルを作成します。
A1 = [2; 8; 3]; A2 = [9; 4; 6; 2; 7]; A3 = [9; 2; 6; 1; 9; 3];
2 番目のベクトルの長さを確認します。
m = length(A2)
m = 5
1 番目と 3 番目のベクトルをサイズ変更して、2 番目のベクトルの長さに合わせます。resize は A1 の末尾に要素を追加し、A3 の末尾から要素を 1 つ削除します。
B1 = resize(A1,m)
B1 = 5×1
2
8
3
0
0
B3 = resize(A3,m)
B3 = 5×1
9
2
6
1
9
同じ長さのベクトルは連結できます。サイズ変更したベクトルを使用して行列を作成します。
C = [B1 A2 B3]
C = 5×3
2 9 9
8 4 2
3 6 6
0 2 1
0 7 9
paddata および trimdata 関数を使用して、データをサイズ変更することもできます。paddata 関数を使用して、ターゲットの長さよりも短いベクトルのサイズを変更し、trimdata 関数を使用して、ターゲットの長さよりも長いベクトルのサイズを変更します。
D1 = paddata(A1,m)
D1 = 5×1
2
8
3
0
0
D3 = trimdata(A3,m)
D3 = 5×1
9
2
6
1
9
3 行 3 列の行列を作成します。各列から要素を 1 つ削除して、列の長さが 2 になるようにサイズ変更します。各行のデータを反映させて行に含まれる要素が 9 つになるまで繰り返し、行の長さが 9 になるようにサイズ変更します。Pattern は、resize が要素を追加する次元にのみ適用されます。
A = [1 3 5; 2 4 6; 7 8 10]
A = 3×3
1 3 5
2 4 6
7 8 10
B = resize(A,[2 9],Pattern="reflect")B = 2×9
1 3 5 3 1 3 5 3 1
2 4 6 4 2 4 6 4 2
3 行 3 列の行列を 3 次元配列の最初のページとして作成します。3 番目の次元に沿ってサイズ変更し、配列に 2 ページ目を追加します。
A = [1 3 5; 2 4 6; 7 8 10]
A = 3×3
1 3 5
2 4 6
7 8 10
B = resize(A,2,Dimension=3)
B =
B(:,:,1) =
1 3 5
2 4 6
7 8 10
B(:,:,2) =
0 0 0
0 0 0
0 0 0
さまざまなデータ型の変数が存在する timetable を作成します。
num = [10; 20; 30]; cat = categorical(["A"; "B"; "A"]); log = logical([1; 0; 1]); str = ["Text 1"; "Text 2"; "Text 3"]; TT = timetable(num,cat,log,str,Timestep=hours(2))
TT=3×4 timetable
Time num cat log str
____ ___ ___ _____ ________
0 hr 10 A true "Text 1"
2 hr 20 B false "Text 2"
4 hr 30 A true "Text 3"
各 timetable 変数を 6 つの要素にサイズ変更します。resize は、各変数のデータ型に応じた既定の埋め込み値を使用します。各データ型の既定の埋め込み値は、table の最後の行を超えて値を代入するときに MATLAB® が作成する要素の値と同じです。
B1 = resize(TT,6)
B1=6×4 timetable
Time num cat log str
_____ ___ ___________ _____ _________
0 hr 10 A true "Text 1"
2 hr 20 B false "Text 2"
4 hr 30 A true "Text 3"
6 hr 0 <undefined> false <missing>
8 hr 0 <undefined> false <missing>
10 hr 0 <undefined> false <missing>
各 timetable 変数に追加する要素のカスタム埋め込み値を指定します。resize は行時刻を拡張するため、行時刻の埋め込み値を指定する必要はありません。
B2 = resize(TT,6,FillValue={mean(num),"C",1,""})B2=6×4 timetable
Time num cat log str
_____ ___ ___ _____ ________
0 hr 10 A true "Text 1"
2 hr 20 B false "Text 2"
4 hr 30 A true "Text 3"
6 hr 20 C true ""
8 hr 20 C true ""
10 hr 20 C true ""
先頭のいくつかの要素と末尾のいくつかの要素を必要としないベクトルを作成します。先頭側と末尾側から要素を削除してベクトルをサイズ変更します。削除する要素数が奇数であるため、resize はベクトルの末尾側から先頭側よりも 1 つ多く要素を削除します。
A = [0.1 1 2 3 3 2 1 0 NaN];
B = resize(A,6,Side="both")B = 1×6
1 2 3 3 2 1
入力引数
入力データ。ベクトル、行列、多次元配列、table、timetable、cell 配列、または構造体配列として指定します。
メモ
A が cell 配列である場合、resize は配列全体のサイズを変更します。配列内の各 cell のサイズは変更しません。cellfun 関数を使用して、cell 配列内の各 cell に resize を適用します。
操作次元に沿ってサイズ変更されたデータのサイズ。非負の整数スカラーまたは非負の整数のベクトルとして指定します。各要素は操作次元のサイズ変更されたデータのサイズを表します。
mが操作次元のAのサイズより大きい場合、resizeは要素を追加します。mが操作次元のAのサイズより小さい場合、resizeは要素を削除します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: B = resize(A,m,Pattern="circular")
演算の対象の次元。"auto"、正の整数のスカラー、または正の整数のベクトルとして指定します。各要素は入力データの次元を表します。
Dimension が "auto" の場合、操作次元は入力引数に応じて異なります。
mがスカラーでAが配列の場合、操作次元はサイズが 1 に等しくない最初の次元です。mがベクトルの場合、操作次元は1:numel(m)です。Aが table または timetable で、resizeが要素を追加している場合、操作次元は1であり、演算は各 table 変数または timetable 変数に沿って個別に行われます。Aが table または timetable で、resizeが要素を削除している場合、操作次元はm内の要素の数に応じて1または[1 2]です。
追加された要素の埋め込み値。スカラー、cell 配列、またはスカラー構造体として指定します。
各クラスの既定の埋め込み値は、ベクトルの末尾を超えて値を代入するときに MATLAB® が作成する要素の値と同じです。たとえば、数値入力データの既定の埋め込み値は 0 です。
Aが配列の場合、スカラーFillValueは、サイズ変更時にAに追加されるすべての要素の値を示します。Aが table または timetable の場合、cell 配列FillValueは、各 table 変数または timetable 変数に追加される要素に対して、異なる埋め込み値を示します。cell 配列内の cell 数は、table 変数または timetable 変数の数と一致しなければなりません。Aが行名をもつ table の場合、resizeはRowNなどの既定の行名で行名を拡張しますが、FillValueを使用して行名をサイズ変更することはありません。Aが行時刻をもつ timetable の場合、resizeは行時刻を拡張しますが、FillValueを使用して行時刻をサイズ変更することはありません。Aが構造体配列の場合、スカラー構造体FillValueは、入力データ内の各フィールドの異なる埋め込み値を示します。FillValueのフィールド数とフィールド名は、入力データ内のフィールド数とフィールド名と一致しなければなりません。
FillValue を指定した場合、Pattern は指定できません。
要素を追加するためのパターン。次の表内のいずれかのパターン名として指定します。このパターンは、サイズ変更されたデータのサイズが m になるまで繰り返されます。
Aが行名をもつ table の場合、resizeはRowNなどの既定の行名で行名を拡張しますが、Patternを使用して行名に追加することはありません。Aが行時刻をもつ timetable の場合、resizeは行時刻を拡張しますが、Patternを使用して行時刻に追加することはありません。
Pattern を指定した場合、FillValue は指定できません。
次の表に、パターン名とその説明、および各パターンが入力データ A = [1 2 3] をどのようにサイズ変更するかのサンプルを示します。
| パターン名 | 説明 | サイズ変更されたデータ |
|---|---|---|
"constant" | A のデータ型によって決定される既定値でデータをパディングします。 |
|
"edge" | 先頭の端点と末尾の端点を一定の埋め込み値として複製してデータをパディングします。 |
|
"circular" | 入力データを循環的に繰り返してデータをパディングします。 |
|
"flip" | 入力データを対称的に反転してデータをパディングします。端点は重複します。 |
|
"reflect" | 入力データを反射させてデータをパディングします。端点は重複しません。 |
|
サイズ変更する入力データの側。次のいずれかの値として指定します。
"trailing"—Aを末尾の要素でパディングするか、Aの末尾の要素をトリミングします。"leading"—Aを先頭の要素でパディングするか、Aの先頭の要素をトリミングします。"both"— 両側でAをサイズ変更します。操作次元で追加または削除する要素数が偶数の場合、Aの末尾側と先頭側を均等にパディングまたはトリミングします。操作次元で追加または削除する要素数が奇数の場合、Aの末尾側で残りの要素をパディングまたはトリミングします。
ヒント
拡張機能
使用上の注意および制限:
コード生成では、
numeric、logical、char、struct、duration、table、およびtimetableというデータ型がサポートされます。コード生成では、この関数のスパース行列入力はサポートされません。
入力が
tableまたはtimetableの場合、出力 table の変数の数はコード生成時に一定のままでなければなりません。すべての string または文字ベクトル入力は、コード生成時に定数でなければなりません。
入力引数
mはコード生成時に固定サイズでなければなりません。空の値が許可されるのは、
numeric、logical、およびchar入力のみです。struct入力に対して既定のFillValueを使用することはサポートされていません。userDatapropertyにカスタム値をもつ timetable はサポートされていません。使用する場合、名前と値の引数
Dimensionはコード生成時に定数でなければなりません。入力引数
Aでは、次のようになります。次元を指定しない場合、コード ジェネレーターは、可変サイズであるかサイズが 1 と等しくない入力配列の最初の次元に沿って演算を行います。この次元がコード生成時に可変サイズで実行時に 1 になる場合、ランタイム エラーが発生することがあります。このエラーを回避するには、次元を指定します。
resize 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
入力データ
Aは非スパースでなければなりません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2023b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)




