本文整理汇总了C++中MultiTag::featureCount方法的典型用法代码示例。如果您正苦于以下问题:C++ MultiTag::featureCount方法的具体用法?C++ MultiTag::featureCount怎么用?C++ MultiTag::featureCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MultiTag
的用法示例。
在下文中一共展示了MultiTag::featureCount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: retrieveFeatureData
DataView retrieveFeatureData(const MultiTag &tag, size_t position_index, size_t feature_index) {
if (tag.featureCount() == 0) {
throw nix::OutOfBounds("There are no features associated with this tag!", 0);
}
if (feature_index >= tag.featureCount()) {
throw nix::OutOfBounds("Feature index out of bounds.", 0);
}
Feature feat = tag.getFeature(feature_index);
DataArray data = feat.data();
if (data == nix::none) {
throw nix::UninitializedEntity();
//return NDArray(nix::DataType::Float,{0});
}
if (feat.linkType() == nix::LinkType::Tagged) {
NDSize offset, count;
getOffsetAndCount(tag, data, position_index, offset, count);
if (!positionAndExtentInData(data, offset, count)) {
throw nix::OutOfBounds("Requested data slice out of the extent of the Feature!", 0);
}
DataView io = DataView(data, count, offset);
return io;
} else if (feat.linkType() == nix::LinkType::Indexed) {
//FIXME does the feature data to have a setdimension in the first dimension for the indexed case?
//For now it will just be a slice across the first dim.
if (position_index > data.dataExtent()[0]){
throw nix::OutOfBounds("Position is larger than the data stored in the feature.", 0);
}
NDSize offset(data.dataExtent().size(), 0);
offset[0] = position_index;
NDSize count(data.dataExtent());
count[0] = 1;
if (!positionAndExtentInData(data, offset, count)) {
throw nix::OutOfBounds("Requested data slice out of the extent of the Feature!", 0);
}
DataView io = DataView(data, count, offset);
return io;
}
// FIXME is this expected behavior? In the untagged case all data is returned
NDSize offset(data.dataExtent().size(), 0);
DataView io = DataView(data, data.dataExtent(), offset);
return io;
}