2015-10-27 56 views
0

我在Matlab的時間矢量T從0時由doubles我的結束時間(一些大的數字),看起來像這樣:Matlab的:僅從雙打的矢量中提取整數

[... 
2.4485; 
2.7147; 
3; 
3.2986; 
4; 
4.3759; 
4.7976; 
5; 
...] 

我對於T(它們同樣長)中的每個時間元素都有一個向量A

現在,我想提取T的所有整數元素和A相應元件,使得我有一個數據對每個第二個0,1,2,3,...

有在非零小數時間點出現的頻率沒有規律。如果它不是A,我當然可以使用linspace創建一個整數時間向量,但問題是:要知道A中的哪些元素跳過。

有沒有人知道一種方法來實現這一目標?提前致謝!

/索菲

+0

因此,上述數據'[3 4 5]'的期望輸出?如果是這樣,請將此添加到您的問題中。 –

回答

1
B = A(T==round(T)); 

此檢查T的條目是否是等於舍入版本的本身,並且如果爲真,該條目是一個整數。因此它創建了一個邏輯矩陣,該矩陣用於索引A,僅返回BT整數對應的值。

+3

您可能希望允許使用'B = A(abs(T-round(T))<1e-15)'或近似整數。 –

+0

同意Andras:除非你知道你的「整數」實際上是整數而不是,例如'3.000000000000000000000000000000000000000016',否則與舍入的平等將不起作用。無恥的插件:在MathWorks的FileExchange上尋找'approxeq'。 –

+0

或者只是在整數網格上插入相應的信號以擺脫所有這些問題^^ – BillBokeey