すべての最小ピークが x 軸に沿って配置されるように、正弦波データを位相シフトしようとしています。 このコードを試してみましたが、「 'Matrix' のアクセスまたは評価では、リストまたは数値である必要があります。Matrix/*####*/(sineCol < < Get Values)"
どんな助けでも大歓迎です。
// データを読み込む
dt = 現在のデータ テーブル();
// 正弦波データの列を指定
sineCol = dt << column("PITCH");
// sineCol を行列に変換します
sineMat = Matrix(sineCol << Get Values);
// 最小ピークのインデックスを計算します
minIndex = Loc Min(sineMat);
// データをシフトするポイント数を計算します
shiftPoints = N 行 (sineMat) - minIndex;
// データをシフトする
shiftSineCol = J(N 行 (sineMat), 1, .);
For(i = 1, i <= N Rows(sineMat), i++,
shiftSineCol[i] = If(i <= shiftPoints, sineMat[shiftPoints-i+1], sineMat[N Rows(sineMat)-i+shiftPoints+1]);
);
// シフトされたデータのテーブルを作成します
newTable = New Table("PITCH Shifted", Add Rows(N Rows(dt)));
newTable["PITCH Shifted"] = shiftSineCol;
newTable["TIME"] = dt:column("TIME");
// テーブルを保存
newTable << Save("PITCH Shifted.jmp");