【发布时间】:2016-03-07 18:23:56
【问题描述】:
我有n 数量的向量(单列),它们是相关的。其中一个(假设是n 向量中的第一个)有一堆NaNs。我使用了erase - remove_if 成语来清除包含NaNs 的行的这个向量。我想同时或事后从所有其他向量中删除完全相同的行。这似乎是一个常见的编码问题,但我找不到一个例子。我正在使用 C++ 和 OpenCV 库进行编码。
这是我的代码示例,它不起作用,我认为这是 Miki 的建议
vector<float> RemoveManyEs(vector<float> &V1, vector<float> &V2, vector<float> &V3)
{
int length = V1.size();
int n = 0;
do
{
if (isnan(V1.at(n)))
{
V1.erase(V1.begin() + n);
V2.erase(V2.begin() + n);
V3.erase(V3.begin() + n);
}
n += 1;
} while (n < length);
return V1,V2,V3;
}
【问题讨论】:
-
如果向量必须保持同步,为什么还有其他向量?
-
只需扫描您的第一个向量(或包含 NaN 的向量),并存储 NaN 的索引。然后,从每个向量中删除检索到的索引处的元素。
-
试图弄清楚如何将我的示例代码放在此评论中以继续讨论
-
测试
vector<float>....不完全 -
测试 {vector
}...不