C# 方法来缩放值?

标签 c# .net math

我的值范围是 0 到 255。

有一种方法返回一个数组,其最小值和最大值在此范围内,即:13、15、20、27、50 ... 240 其中 13 是最小值,240 是最大值

我需要缩放这些值,使 13 变为 0,240 变为 255,并按比例缩放它们之间的所有其他值。

是否有任何 C# 方法可以做到这一点?

谢谢!

最佳答案

使用这个公式

y=mx+c

其中 m = (255-0)/(244-13)c= -13*m

所以你必须这样转换数组

 public double[] GetScaling(double[] arr, double min, double max)
{
    double m = (max-min)/(arr.Max()-arr.Min());
    double c = min-arr.Min()*m;
    var newarr=new double[arr.Length];
    for(int i=0; i< newarr.Length; i++)
       newarr[i]=m*arr[i]+c;
    return newarr;
}

关于C# 方法来缩放值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675196/

相关文章:

c# - DateTime.ParseExact 返回 FormatException

c# - 在 .NET 3.5 和 Visual Studio 2008 中找不到 HttpContext

math - 正弦波频率拟合

c# - 如何使用 LINQ 返回对象的祖先?

c# - 在 C# 中存储矩阵值的快速且有用的方法

.net - 托管 Windows 工作流设计器

algorithm - 当您有一组理想的比率,但其中一些比率低于最小值时,如何找到最合适的?

c++ - 哪本书会涵盖 3D 游戏开发数学的理论?

c# - 有人能更好地解释 nHibernate 中的 'Projections' 是什么吗?

c# - ASPX 中的动态页面呈现