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

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

 Accepted Answer

Akira Agata
Akira Agata on 23 Apr 2024

1 vote

まさしく 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 Comment

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

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2024a

Asked:

on 23 Apr 2024

Commented:

on 23 Apr 2024

Community Treasure Hunt

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

Start Hunting!