2017-02-23 7 views
0

私は連結したいベクトルをいくつか持っていますが、各要素はタイムスタンプが増えていますが、ベクトルを連結して連続的な時間スケールを確保する方法はありますか?有効な時間ベクトルの作成

と言えば、tone1_timetone2_timeの2つのベクトルがあります。どちらも1x4801 doubleです。ベクトルの各要素にはタイムスタンプが含まれているため、ベクトルを連結して正しい時刻を持つために要素を追加する必要があります。これまでのところ私は持っている。

n = 10; 

for i = 1:n 
    time(n,end) = tone1_time + tone2_time; 
end 

これは、matlabでエラーが発生します!

EDIT:その他のコード

私は2つのサウンドベクトルを生成してそれらを連結します。これは、例えばます

% repeat n times 
n = 10; 

signal = [ tone1_signal tone2_signal ]; 

signal = repmat(signal,1,n); 

新しいベクトルsignalを、例えば、 1x48020 double。時間ベクトルはこのベクトルと同じ大きさである必要があるが、依然として連続時間を有する。

答えて

1

まず、あなたが時間間隔の連続性を確保するためにtone2_timeのすべての要素にtone1_timeの最後の要素を追加する必要があります。

tone2_time = tone2_time + tone1_time(end); 

次に、あなたは彼らに

また
tone_time = [tone1_time, tone2_time]; 

をCONCATことができ、あなたは差異を扱うことができます

tone_time = cumsum([diff([0 tone1_time]), diff([0 tone2_time])]); 

EDIT:
時間ベクトルを複製する場合:

tone_time_diff = [diff([0 tone1_time]), diff([0 tone2_time])]; 
tone_time = cumsum(repmat(tone_time_diff, 1, n)); 
+0

が、それは 'tone_time'をn回複製し、まだ時間の連続性を維持することは可能ですか? – MikaelKP

+0

@MikaelKPそれはどういう意味ですか? – Shai

+0

2つの異なる音を生成すると、2つの時間ベクトルが生成されます。 2つのサウンドは1つずつ再生する必要がありますので、最初のサウンド1、サウンド2のとき、次のサウンド1など...時間ベクトルを複製することは可能ですか? – MikaelKP

関連する問題