2017-02-23 70 views
0

我有几个要连接的向量,其中每个元素都是递增时间戳,但是如何在确保连续时间缩放的同时连接向量?在添加元素时连接矢量 - 创建有效时间矢量

说,我有两个向量tone1_timetone2_time均由1x4801 double给出。矢量的每个元素都包含一个时间戳,因此,为了获得正确的时间,矢量连接时必须添加这些元素。到目前为止,我已经;

n = 10; 

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

它在matlab中产生一个错误!

编辑:更多代码

我生成两个声音矢量,并通过将它们连接起来:

% repeat n times 
n = 10; 

signal = [ tone1_signal tone2_signal ]; 

signal = repmat(signal,1,n); 

这将例如返回一个新的矢量signal,长度为例如1x48020 double。时间矢量需要与这个矢量具有相同的大小,但是仍然具有连续的时间。

回答

1

首先,你需要的tone1_time最后一个元素添加到的tone2_time所有要素,以确保时间间隔的连续性:

tone2_time = tone2_time + tone1_time(end); 

然后你可以Concat的他们

tone_time = [tone1_time, tone2_time]; 

另外,您可以与差异一起工作

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

编辑:
用于复制的时间向量:

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

当我生成两种不同的声音时,会生成两个时间向量。这两个声音必须一次播放一个,所以第一个声音1,当声音2,下一个声音1等...因此,是否有可能复制时间向量,因此它匹配声音的复制? – MikaelKP