c# - 仅在 float[] 样本数组的末尾删除或修剪零 0
问题描述
我是 C# 的新手,我想知道是否有一个函数可以删除浮点数组末尾的特定值 (0)?
例如:
float[] samples = {0.0, 4.0, 2.5, ..., 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
通话后,我希望我的样品是:
samples == {0.0, 4.0, 2.5, ..., 2.0}
谢谢您的帮助
解决方案
我将从找到最终的非零索引开始:
int i = samples.Length - 1;
for( ; i >= 0; i--)
if(samples[i] != 0.0F) break;
然后我要么复制那个子集(包括0
- i
),要么为了避免分配,我会使用 aSpan<T>
将自己限制在该部分而不创建新数组:
var span = new Span<float>(samples, 0, i + 1);
推荐阅读
- r - 根据布尔列中的连续值聚合小标题
- python - Cython Python:当我构造一个类的 __init__ 时,之前的声明就在这里
- javascript - 仅在蒙版图像上显示图标
- android - 仪器测试:找不到依赖项
- r - 如何在不添加空格的情况下将 R 图中的一个字母更改为斜体
- angular6 - div在复选框上切换选中和未选中角度6
- server - 应用服务器和后端服务器有什么区别
- java - Apache Ignite 是否支持 10,000 个缓存?
- r - R脚本合并2行
- java - java.lang.UnsatisfiedLinkError opencv-contrib