Main Content

helscanintrlv

らせんパターンにシンボルを並べ替え

構文

intrlvd = helscanintrlv(data,Nrows,Ncols,hstep)

説明

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

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

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

下記のコマンドは 2 つの異なる勾配の対角を使用してベクトルを並べ替えます。

i1 = helscanintrlv(1:12,3,4,1) % Slope of diagonal is 1.
i2 = helscanintrlv(1:12,3,4,2) % Slope of diagonal is 2.

出力は以下のようになります。

i1 =

  Columns 1 through 10 

     1     6    11     4     5    10     3     8     9     2

  Columns 11 through 12 

     7    12


i2 =

  Columns 1 through 10 

     1    10     7     4     5     2    11     8     9     6

  Columns 11 through 12 

     3    12

それぞれ、関数は内部的に次の 3 行 4 列の一時的な行列を作成します。

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

i1 を作成するため、関数は 1 行下の 1 列右に移動することで勾配 1 の対角を作成します。最初の対角には、1611、および 4 が含まれる一方、2 番目の対角は、一時的な行列内で 1 の下にあるため 5 から始まります。

i2 を作成するため、関数は 2 行下の 1 列右に移動することで勾配 2 の対角を作成します。最初の対角には、1107、および 4 が含まれる一方、2 番目の対角は、一時的な行列内で 1 の下にあるため 5 から始まります。

拡張機能

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

バージョン履歴

R2006a より前に導入