Apache flex 我可以通过vbscript注入从flex action脚本访问excel数学函数吗?

Apache flex 我可以通过vbscript注入从flex action脚本访问excel数学函数吗?,apache-flex,math,vbscript,Apache Flex,Math,Vbscript,我们希望在FlexGUI图表中显示一些数学数据。我们需要对以下两个数据数组进行绘图 两者的互相关 每个参数的自动校正 相关系数 Flex似乎不支持科学的公式,如互相关、自相关和自相关系数如果我错了,或者在这一点上有合理的替代方案,请纠正我。 在寻找替代方案时,我在actionscript.org上看到了这篇文章 [--不允许--] 我目前正在尝试看看是否可以从actionscript调用excel公式。在flex和vbscript之间传递数据似乎有点复杂这是正确的方法吗? 这是针对POC的,因此

我们希望在FlexGUI图表中显示一些数学数据。我们需要对以下两个数据数组进行绘图

两者的互相关 每个参数的自动校正 相关系数

Flex似乎不支持科学的公式,如互相关、自相关和自相关系数如果我错了,或者在这一点上有合理的替代方案,请纠正我。

在寻找替代方案时,我在actionscript.org上看到了这篇文章 [--不允许--]

我目前正在尝试看看是否可以从actionscript调用excel公式。在flex和vbscript之间传递数据似乎有点复杂这是正确的方法吗?


这是针对POC的,因此我们只想快速破解。

我从未使用过VBScript,但我知道您可以使用AS3中的
ExternalInterface
类从AS3访问JavaScript,反之亦然。据我所知,您还可以从JavaScript访问嵌入在网页中的VB函数。因此,从Flash调用VB函数应该不会太难。

我从未使用过VBScript,但我知道可以使用AS3中的
ExternalInterface
类从AS3访问JavaScript,反之亦然。据我所知,您还可以从JavaScript访问嵌入在网页中的VB函数。因此,从Flash调用VB函数应该不会太难。

使用ActionScript,您可以编写自己的COREL版本来进行计算。这将比尝试与Excel通信容易得多。当然,没有直接的方式从Flex应用程序与Excel通信。

使用ActionScript,您可以编写自己的COREL版本来进行计算。这将比尝试与Excel通信容易得多。当然,没有直接的方式从Flex应用程序与Excel进行通信。

这可能太晚了,但是,好吧……我觉得很无聊:)


私有函数相关系数(X:Array,Y:Array):数字
{
//两个随机变量X和Y之间的相关系数定义为:
//相关性(X,Y)=Covar(X,Y)/(sqrt(Var(X))*sqrt(Var(Y)))
//
//Var(X)=Covar(X,X);
//Covar(X,Y)=E((X-xm)(Y-ym));其中xm,ym是总体均值。
返回sampleCovar(X,Y)/Math.sqrt(sampleCovar(X,X)*sampleCovar(Y,Y));
}

私有函数sampleCovar(X:Array,Y:Array):编号 { //样本协方差为和((X-xm)(Y-ym))/n-1 //其中n为样本量,xm&ym为样本均值。 //我假设X和Y的大小相同。。。 变量总数:数值=0; var xm:数值=样本平均值(X); 变量ym:Number=(X==Y)?xm:sampleMean(Y); 对于(变量i:int=0;i 私有函数sampleMean(X:Array):数字 { //样本平均数=总和(X)/(样本量) 变量总数:数值=0; 对于每个(变量x:x中的数字) 总数+=x; 返回总长度/X.length; }


我更愿意假设您使用的是离散随机变量,而不是用信号处理做一些古怪的事情。请记住,sampleCovar不会返回与Excel中COVAR相同的东西,因为Excel使用有偏估计(即它除以n而不是(n-1)),但这在计算相关系数时被抵消了。

这可能太晚了,但是,嗯……我觉得很无聊:)


私有函数相关系数(X:Array,Y:Array):数字
{
//两个随机变量X和Y之间的相关系数定义为:
//相关性(X,Y)=Covar(X,Y)/(sqrt(Var(X))*sqrt(Var(Y)))
//
//Var(X)=Covar(X,X);
//Covar(X,Y)=E((X-xm)(Y-ym));其中xm,ym是总体均值。
返回sampleCovar(X,Y)/Math.sqrt(sampleCovar(X,X)*sampleCovar(Y,Y));
}

私有函数sampleCovar(X:Array,Y:Array):编号 { //样本协方差为和((X-xm)(Y-ym))/n-1 //其中n为样本量,xm&ym为样本均值。 //我假设X和Y的大小相同。。。 变量总数:数值=0; var xm:数值=样本平均值(X); 变量ym:Number=(X==Y)?xm:sampleMean(Y); 对于(变量i:int=0;i 私有函数sampleMean(X:Array):数字 { //样本平均数=总和(X)/(样本量) 变量总数:数值=0; 对于每个(变量x:x中的数字) 总数+=x; 返回总长度/X.length; }


我更愿意假设您使用的是离散随机变量,而不是用信号处理做一些古怪的事情。请记住,sampleCovar不会返回与Excel中COVAR相同的东西,因为Excel使用有偏估计(即它除以n而不是(n-1)),但这在计算相关系数时会被抵消。

感谢您的回复。我之所以想使用VBScript,是为了尝试使用类似COREL(A[],B[]的Excel方法)来自flex。因此,它更像是一个excel调用,而不是VB调用。不确定是否可以轻松完成。目前,我们正在继续,并开始在AS3中直接编写公式。感谢您的回复。我之所以要使用VBScript,是为了尝试使用类似COREL(a[],B[])的excel方法从flex。因此,它更像是一个excel调用,而不是VB调用。不确定是否可以轻松完成。目前,我们正在继续,并开始在AS3中直接编写公式。 private function correlationCoeff(X:Array, Y:Array):Number { //correlation coeff between two random variables X and Y is defined as : //correlation(X,Y) = Covar(X,Y)/(sqrt(Var(X)) * sqrt(Var(Y))) // //Var(X) = Covar(X,X); //Covar(X,Y) = E((X-xm)(Y-ym)); where xm, ym are the population means. return sampleCovar(X, Y)/Math.sqrt(sampleCovar(X, X) * sampleCovar(Y, Y)); }

private function sampleCovar(X:Array, Y:Array):Number { //Sample covariance is Sum((X-xm)(Y-ym))/n-1 //where n is the sample size and xm & ym are sample means. //I'll assume that X and Y are the same size... var total:Number = 0; var xm:Number = sampleMean(X); var ym:Number = (X == Y)? xm : sampleMean(Y); for (var i:int=0; i private function sampleMean(X:Array):Number { //Sample mean = Sum(X)/(sample size) var total:Number = 0; for each(var x:Number in X) total += x; return total/X.length; }