【问题标题】:Extracting integers only from vector of doubles仅从双精度向量中提取整数
【发布时间】:2015-10-27 14:41:22
【问题描述】:

我在 MATLAB 中有一个时间向量 T,由 doubles 组成,从时间 0 到我的结束时间(一些很大),如下所示:

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

我还有一个向量A,其中收集了T 中每个时间元素的数据(它们同样长)。

现在,我想从T 中提取所有整数元素以及A 中的相应元素,这样我就有一个每秒0、1、2、3……的数据对。

小数点非零的时间点出现的频率没有规律。如果不是A,我当然可以使用linspace 创建一个整数时间向量,但问题是:要知道要跳过A 中的哪些元素。

有谁知道实现这一目标的方法吗?

【问题讨论】:

  • 那么上述数据[3 4 5]的期望输出?如果是这样,请将此添加到您的问题中......

标签: matlab vector integer


【解决方案1】:
B = A((T-round(T))<10*eps());

这将检查 T 的条目是否等于其自身的舍入版本(在指定的容差范围内,在本例中我使用 10*eps(),如果为真,则该条目是整数。因此它创建了一个逻辑矩阵,用于索引A,只返回BT整数对应的值。

【讨论】:

  • 或者只是在整数网格上插值对应的信号来摆脱所有这些问题^^
  • 谢谢,感谢所有答案!最后 find(mod(T,1)==0) 对我来说很好。
猜你喜欢
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 2011-12-12
  • 1970-01-01
相关资源
最近更新 更多