ベクトルを補間したい

13 ビュー (過去 30 日間)
Osamu Goto
Osamu Goto 2022 年 8 月 26 日
回答済み: Hernia Baby 2022 年 8 月 26 日
例えば、
X=[3 5 1]
を、次のように3倍に増やしたい
Y=[3 3 3 5 5 5 1 1 1]
これを、任意のXについて、任意の倍率で行う演算を、素早く実施したく、教えて下さい。
for文を多用すれば、できることは、わかっています。
  1 件のコメント
Osamu Goto
Osamu Goto 2022 年 8 月 26 日
自問自答になりましたが、以下で出来ることを理解しました。
Y=[X;X;X];
reshape(Y,1,9)

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

回答 (3 件)

Shunichi Kusano
Shunichi Kusano 2022 年 8 月 26 日
実はrepelemという関数がありまして、それだと1行でできます。

Genki Uebayashi
Genki Uebayashi 2022 年 8 月 26 日
repmatで3行に増やして、reshapeで1行numel列に並び替えでできます。

Hernia Baby
Hernia Baby 2022 年 8 月 26 日
repmatrepelem がコピーを増やすものになります。
要素のみを増やす場合は前者、行列として増やす場合は後者をお使いください。
X=[3 5 1];
repelem(X,3)
ans = 1×9
3 3 3 5 5 5 1 1 1
repmat(X,3)
ans = 3×9
3 5 1 3 5 1 3 5 1 3 5 1 3 5 1 3 5 1 3 5 1 3 5 1 3 5 1
今回はrepelemがやりたいことに該当します。

カテゴリ

Help Center および File Exchange行列および配列 についてさらに検索

製品


リリース

R2012b

Community Treasure Hunt

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

Start Hunting!