配列を拡張する方法を教えて下さい

M行N列の2次元配列を、要素数がnM行nN列になるように拡張したいです。
値は元の要素が左上になるように配置されることが必要です。
図の例は2倍に拡張した例ですが、この場合は必ず右、下、右斜め下に対して同じ値を持つようにしたいのですが、
intrpt2関数を用いた方法では用意されている内挿methodに適したものがなく、たとえば"nearest"を使うと一番端の要素が狙い通りなりません。
またfor文を使って無理やり拡張する方法は計算時間がかかってしまうため、他に方法が良いアイディアや関数などあれば教えていください。

 採用された回答

Akira Agata
Akira Agata 2024 年 4 月 23 日

1 投票

まさしく repelem 関数の出番です。
たとえば頂いた例だと、以下のようになります。
% 対象となる配列
A = [1 2; 3 4];
% それぞれの要素を繰り返す
B = repelem(A, 2, 2);
% 結果を表示
disp(B)
1 1 2 2 1 1 2 2 3 3 4 4 3 3 4 4

1 件のコメント

osamu
osamu 2024 年 4 月 23 日
ありがとうございます。
この関数を探していました!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeResizing and Reshaping Matrices についてさらに検索

製品

リリース

R2024a

質問済み:

2024 年 4 月 23 日

コメント済み:

2024 年 4 月 23 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!