草庐IT

C# 方法来缩放值?

我的值范围是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所以你必须这样转换数组publicdouble[]GetScaling(double[]arr,doublemin,doublemax){doublem=(max-min

c# - 在 C# 中将二维数组归零的最快方法

我有一个二维数组,我想将其清除并重置为0值。我知道如何使用Array.Clear()清除向量(一维数组),但我不知道清除二维矩阵的最佳方法。doubleD=newdouble[10];Array.Clear(D,0,D.Length);如何清除一个2DNxM数组doubleD[,]=newdouble[N,M];感谢您提供的任何帮助。 最佳答案 Array.Clear也适用于多维数组:double[,]D=newdouble[M,N];Array.Clear(D,0,D.Length);注意,不需要自己计算长度,因为Length属性

c# - 使用预计算平移数组的快速正弦/余弦

我有以下代码使用预先计算的内存表执行Sin/Cos函数。在下面的例子中,表格有1024*128个项目,涵盖了从0到2pi的所有Sin/Cos值。我知道我可以使用Sin/Cos对称性并仅保留1/4的值,但在计算值时我会有更多的“如果”。privateconstdoublePI2=Math.PI*2.0;privateconstintTABLE_SIZE=1024*128;privateconstdoubleTABLE_SIZE_D=(double)TABLE_SIZE;privateconstdoubleFACTOR=TABLE_SIZE_D/PI2;privatestaticdoubl

c# - LINQ to Entities 无法识别方法 'System.String StringConvert(System.Nullable` 1[System.Double])

我不明白为什么会出现此错误。我已经在以前版本的EntityFramework中成功地使用了这个函数,但是我已经使用EF6设置了一个新项目并且它没有合作。usingSystem.Data;usingSystem.Data.Objects.SqlClient;e.Result=fromninMyDB.tblBulletinswheren.AnncStartDateTime.Now&&n.Approved==trueorderbyn.AnncStartdescending,n.AnncDatedescendingselectnew{n.RecID,AnncTitle=n.AnncTitle+

c# - LINQ 计算 SortedList<dateTime,double> 的移动平均值

我有一个SortedList形式的时间序列.我想计算这个系列的移动平均值。我可以使用简单的for循环来做到这一点。我想知道是否有更好的方法使用linq来执行此操作。我的版本:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){varmySeries=newSortedList();mySeries.Add(newDateTime(2011,01

c# - 将字符串数组转换为双数组的最快方法?

我最近不得不处理将大型字符串数组转换为数字数组的问题,我想知道最快的方法到底是什么。起初我采用:double[]doubles=sarray.Split(',').Select(Double.Parse).ToArray();...这真的是甜蜜...但是今天,我决定切换回一个简单的for循环来将数组中的所有字符串解析为Double,毫不奇怪,基准测试似乎很受欢迎for循环……所以我应该切换回基本的for循环吗?此外,我想知道是否有更好的类型可用于存储拆分后的字符串,例如HashSet在此转换过程中哪个可能表现更好? 最佳答案 Arr

c# - C# 如何知道文字的类型?

考虑这段代码:doublei=0xF0000000;Console.WriteLine(0xF0000000.GetType());Console.WriteLine(i.GetType());为什么C#为第一个打印System.UInt32而为第二个打印System.Double?是不是因为编译器默认将文字推断为var类型? 最佳答案 在这一行中:doublei=0xF0000000;literal是uint类型,但它被隐式转换为double。当您调用i.GetType()时,总是打印System.Double,因为变量的类型是d

c# - 将 set 访问器添加到类中的属性,该类派生自只有一个 get 访问器的抽象类

我有一个抽象类,AbsClass实现一个接口(interface),IClass.IClass有几个属性只有Get访问器。AbsClass实现的属性IClass作为要在派生自的类中定义的抽象属性AbsClass.所以所有派生自的类AbsClass还需要满足IClass通过与Get访问器具有相同的属性。但是,在某些情况下,我希望能够向来自的属性添加set访问器。IClass.然而,如果我尝试覆盖中的抽象属性AbsClass使用setaccessor我收到此错误ConcClassA.Bottom.Set无法覆盖,因为AbsClass.Bottom没有可覆盖的set访问器见ConcClass

c# - C#/.Net 中的高效多元线性回归

有谁知道在C#中执行多元线性回归的有效方法,其中联立方程的数量可能有1000个(具有3或4个不同的输入)。看完thisarticle在多元线性回归上,我尝试用矩阵方程来实现它:Matrixy=newMatrix(newdouble[,]{{745},{895},{442},{440},{1598}});Matrixx=newMatrix(newdouble[,]{{1,36,66},{1,37,68},{1,47,64},{1,32,53},{1,1,101}});Matrixb=(x.Transpose()*x).Inverse()*x.Transpose()*y;for(inti=

c# - 如何在 C# 中找到给定开始、结束和 2 个交点的 BezierSegment 的控制点 - 又名三次贝塞尔曲线 4 点插值

我一直在努力寻找一种可以理解的方法来做到这一点。我有四个点,一个StartPt、EndPoint和Intersection点来表示贝塞尔曲线中的峰谷。C#中的BezierSegment需要开始、控制点1、控制点2、端点——但是我没有任何控制点,我只有沿着贝塞尔曲线的这两个点(我在上面称它们为交点)。..如何计算两个控制点?提前致谢,这让我发疯。这里有一些解释:http://www.tinaja.com/glib/nubz4pts1.pdf但它是用附言写的,那种语言对我来说根本毫无意义-它超出了我的理解范围。 最佳答案 通过4个点的曲