関数 > ファイルの読み込みと書き込み > 例: ベクトルから行列への変換時の重なりの説明
例: ベクトルから行列への変換時の重なりの説明
1. 最初の 96 成分に一意のデータを含む、10000 成分ベクトルを定義します。
クリックしてこの式をコピー
成分 96 を使用して、異なる重なり値のシフトがトラックされます。
クリックしてこの式をコピー
2. 2 のべき乗の 10 成分ベクトルを定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
ここで、ss はターゲット行列の行数です。
3. 0-90% まで 10 ずつ増加する overlap 因子の 10 成分ベクトルを定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
重なりは 100% 以外でなければなりません。
4. overlap 因子を設定し、floor関数とceil関数を使用して行列のサイズを定義します。
クリックしてこの式をコピー
重なりがゼロに設定されている場合、データベクトルはいくつかの長さ ss のチャンクに分割されます。次の方程式のように、重なりが増えると長さ ss のチャンクの数も増えます
クリックしてこの式をコピー
クリックしてこの式をコピー
スライスサイズと重なり因子の組み合わせにより、それぞれ異なる行列の次元になります。現在の設定では次のような行列の次元になります。
クリックしてこの式をコピー
5. ti 以下となる 10 個の値のいずれかに ti を設定しやすくするために、10 成分のベクトル TI を作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. いずれかの TI 成分を ti に設定し、行列を作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
新しい行列の次元は以下のようになります。
クリックしてこの式をコピー
7. Data 成分 96 "X96X" の配置の重なりによる影響を確認するため、次の短いプログラムを使用して、転置された最初の 10 列の内容を表示します。
クリックしてこの式をコピー
8. 行列 M を計算します。
成分の数における現在の重なりのサイズは ssoverlap の関数になり、現在は次に相当します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
9. デフォルトの重なりは 40% に設定されています。overlap=0 に設定し、行列 M を調べて各セット内のデータを確認します。
10. さまざまな overlap 値で実験し、以下の説明を用いると、"X96X" がこの場所にある理由が理解できます。
0% の重なり、N=0
ss 成分の Set # 0Data は行列の 0 番目の列に書き込まれ、添字 0 から始まります。
ss 成分の Set # 1Data は行列の 1 番目の列に書き込まれ、添字 N=0 から始まります。
以降の ss 成分の各セットは、行列に含まれる後続の列の添字 N=0 に書き込まれます。
成分の重なりである N=0 であるため、ss 成分の 6 番目のセットの最初の成分 ("X96X") は、6 番目の列の N=0 成分に書き込まれます。
10% の重なり、N=2
ss 成分の Set # 0Data は行列の 0 番目の列に書き込まれ、添字 0 から始まります。
ss 成分の Set # 1Data は行列の 1 番目の列に書き込まれ、添字 N=2 から始まります。1 番目の列の最初の N 成分には、前の列の最後の N 成分が含まれます。
ss 成分の Set # 2Data は行列の 2 番目の列に書き込まれ、添字 2N=4 から始まります。2N 番目の列の最初の 2 成分には、前の列の最後の 2N 成分が含まれます。
ss 成分の Set # 3Data は行列の 3 番目の列に書き込まれ、添字 3N=6 から始まります。3N 番目の列の最初の 3 成分には、前の列の最後の 3N 成分が含まれます。
成分の重なりである N=2 であるため、ss 成分の 6 番目のセットの最初の成分 ("X96X") は、6 番目の列の 6N=12 成分 (ss 未満) に書き込まれます。
20% の重なり、N=4
上記の説明が当てはまります。
overlap=20%N=4 で、6 列内の全シフトが 6N=24 (ss より大きい) である場合。この場合、シフトは 6 番目の列を越えて、7 番目の列の 8 成分におよびます。しかし、書き込み先が新しい列なので、さらに N=4 のシフトが行われ、ss 成分の Set # 6 の最初の成分 ("X96X") は 7 番目の列の成分 12 に書き込まれます。
30 から 90% の重なり、N = 5、7、8、10、12、13、15
上記の説明が当てはまりますが、30-90% の重なりを詳しく調べる必要があります。
overlap=30%N=5 で、6 列内の全シフトが 6N=30 (ss より大きい) である場合。この場合、シフトは 6 番目の列を越えて、7 番目の列の 14 成分におよびます。しかし、書き込み先が新しい列なので、さらに N=5 のシフトが行われ、7 番目の列を越えて 8 番目の列の 3 成分におよびます。しかし、書き込み先が新しい列なので、さらに 8 のシフトが行われ、N=5 成分の Set # 6 の最初の成分 (ss) は "X96X" 番目の列の成分 8 に書き込まれます。
例: 40% の重なり、N = 7
6 番目の列内の全シフトは 6N=42 (2ss より大きい) になります。
このため、最後の成分は 8 番目の列の 10 成分になります。
3 列を上回るシフトを行ったため、3N=21 をシフトに追加します。
つまり、"X96X"9 番目の列の 15 成分に書き込まれます。
これは役に立ちましたか?