Main Content

helscandeintrlv

らせんパターンでシンボルの順序を復元

説明

deintrlvd = helscandeintrlv(data,Nrows,Ncols,hstep) は、一時的な行列を要素でらせん状に埋め、行列の内容を行ごとに出力に送ることによって data 内の要素を再配列します。Nrows および Ncols は、一時的な行列の次元です。hstep は、対角の勾配、つまり、列インデックスが 1 つ増加するごとに行インデックスが増加する値です。hstep は、Nrows より小さい非負の整数である必要があります。

らせん状とは関数が入力要素を一時的な行列の対角に配置することを意味します。関数が必要に応じて行列の端を超えてラッピングすると、各対角の要素数は正確に Ncols になります。関数は行インデックスと列インデックスをともに増加させるように対角を横切ります。最初の対角以降の各対角は前の対角の最初の要素の 1 行下から開始されます。

data がベクトルの場合は、Nrows*Ncols 要素をもたなければなりません。data が複数の行と列をもつ行列の場合、data は、Nrows*Ncols 行をもたなければならず、また、この関数は列を独立して処理します。

この関数を関数 helscanintrlv の逆関数として使用するには、両方の関数で同じ NrowsNcols、および hstep 入力を使用します。その場合、2 つの関数は関数 helscanintrlv の後に関数 helscandeintrlv を適用してもデータが変更されないという意味で、逆関数といえます。

すべて折りたたむ

ヘリカル スキャン デインターリーブをベクトル [1:12] に適用して、3 行 4 列の一時的な行列と勾配 1 の対角を使用してベクトルを並べ替えます。

関数 helscandeintrlv は、長さ 4 の対角を使用して内部的に 3 行 4 列の一時的な行列を作成します。次のように表されます。

[1 10  7  4;
 5  2 11  8;
 9  6  3 12]
ans = 3×4

     1    10     7     4
     5     2    11     8
     9     6     3    12

その後、関数は要素を行ごとに出力 d に送ります。

d = helscandeintrlv(1:12,3,4,1)
d = 1×12

     1    10     7     4     5     2    11     8     9     6     3    12

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入