函数 > 读取和写入文件 > 示例:解释将矢量转换为矩阵时的重叠
  
示例:解释将矢量转换为矩阵时的重叠
1. 定义前 96 个元素具有唯一数据的 10000 元素矢量。
单击复制此表达式
元素 96 用于跟踪不同重叠值的偏移:
单击复制此表达式
2. 定义 2 的次方的 10 元素矢量。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
其中,ss 是目标矩阵中的行数。
3. 定义 overlap 因子在 0-90% 之间的 10 元素矢量,增量为 10
单击复制此表达式
单击复制此表达式
重叠不可能为 100%
4. 设置 overlap 因子,并使用函数 floorceil 定义矩阵的大小。
单击复制此表达式
如果将重叠设为零,“数据”矢量会被分成多个 ss 长区块。随着重叠的增加,ss 长区块的数量也会增加,如下列方程所示:
单击复制此表达式
单击复制此表达式
每个切片尺寸和重叠因子的组合会产生不同的矩阵维数。当前设置导致产生以下矩阵维数:
单击复制此表达式
5. 创建 10 元素矢量 TI,以便将 ti 设置为等于或小于 ti 值的 10 个值之一。
单击复制此表达式
单击复制此表达式
6. ti 设置为 TI 中元素之一并创建矩阵。
单击复制此表达式
单击复制此表达式
单击复制此表达式
新的矩阵维数现为:
单击复制此表达式
7. 使用下面的短程序显示矩阵前 10 个转置列的内容,以观察重叠对 Data 元素 96"X96X" 放置的影响。
单击复制此表达式
8. 计算矩阵 M
许多元素当前重叠的大小为关于 ssoverlap 的函数,现等于:
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
9. 将默认重叠设为 40%。设置 overlap=0 并检查矩阵 M 以查看每个组中数据。
10. 使用不同的 overlap 值进行实验并借助下面的说明帮助您理解写入以显示 "X96X" 的原因。
重叠为 0%,N=0
DataSet # 0ss 元素写入矩阵的第 0 列,从索引 0 处开始。
DataSet # 1ss 元素写入矩阵的第 1 列,从索引 N=0 处开始。
ss 元素的后续各组写入矩阵后续列中的索引 N=0 处。
由于元素重叠 N=0,因此,ss 元素中 6 号组的第一个元素 "X96X" 被写入第 6 列的 N=0 元素中。
重叠为 10%,N=2
DataSet # 0ss 元素写入矩阵的第 0 列,从索引 0 处开始。
DataSet # 1ss 元素写入矩阵的第 1 列,从索引 N=2 处开始。第 1 列的前 N 个元素填入的是前一列中的最后 N 个元素。
DataSet # 2ss 元素写入矩阵的第 2 列,从索引 2N=4 处开始。第 2 列的前 2N 个元素填入的是前一列中的最后 2N 个元素。
DataSet # 3ss 元素写入矩阵的第 3 列,从索引 3N=6 处开始。第 3 列的前 3N 个元素填入的是前一列中的最后 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 个元素。但由于写入进入新列,因此,由另一个 N=5 控制变换且 ss 元素中 Set # 6 的第一个元素 "X96X" 被写入第 8 列的第 8 个元素。
示例:重叠为 40%,N=7
6 列中的总变换为 6N=42 (大于 2ss)。
该过程终止于第 8 列的第 10 元素。
由于我们在 3 列间进行变换,因此,将 3N=21 添加到变换中。
这意味着 "X96X" 被写入第 9 列的第 15 个元素。