PHP

<?php /\*\*  \* 数据分析引擎  \* 分析向量的元素 必须和基准向量的元素一致,取最大个数,分析向量不足元素以0填补。  \* 求出分析向量与基准向量的余弦值  \* [@author](http://my.oschina.net/arthor) Foyon  \*/ /\*\*  \* 获得向量的模  \* @param unknown\_type $array 传入分析数据的基准点的N维向量。|eg:array(1,1,1,1,1);  \*/ function getMarkMod($arrParam){ $strModDouble = 0; foreach($arrParam as $val){ $strModDouble += $val \* $val; } $strMod = sqrt($strModDouble); //是否需要保留小数点后几位 return $strMod; } /\*\*  \* 获取标杆的元素个数  \* @param unknown\_type $arrParam  \* [@return](http://my.oschina.net/u/556800) number  \*/ function getMarkLenth($arrParam){ $intLenth = count($arrParam); return $intLenth; } /\*\*  \* 对传入数组进行索引分配,基准点的索引必须为k,求夹角的向量索引必须为 'j'.  \* @param unknown\_type $arrParam  \* @param unknown\_type $index  \* @ruturn $arrBack  \*/ function handIndex($arrParam, $index = 'k'){ foreach($arrParam as $key => $val){ $in = $index.$key; $arrBack\[$in\] = $val;  } return $arrBack; } /\*\*  \*   \* @param unknown\_type $arrMark标杆向量数组(索引被处理过)  \* @param unknown\_type $arrAnaly 分析向量数组 (索引被处理过) |array('j0'=>1,'j1'=>2....)  \* @param unknown\_type $strMarkMod标杆向量的模  \* @param unknown\_type $intLenth 向量的长度  \*/ function getCosine($arrMark, $arrAnaly, $strMarkMod ,$intLenth){ $strVector = 0; $strCosine = 0; for($i = 0; $i < $intLenth; $i++){ $strMarkVal = $arrMark\['k'.$i\]; $strAnalyVal = $arrAnaly\['j'.$i\]; $strVector += $strMarkVal \* $strAnalyVal; } $arrAnalyMod = getMarkMod($arrAnaly); //求分析向量的模 $strFenzi = $strVector; $strFenMu = $arrAnalyMod \* $strMarkMod; $strCosine = $strFenzi / $strFenMu; if(0 !== (int)$strFenMu){ $strCosine = $strFenzi / $strFenMu; } return $strCosine; } ?>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

人工智能数学基础-线性代数1:向量的定义及向量加减法

一、向量1.1、向量定义向量也称为欧几里得向量、几何向量、矢量,指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的量叫做数量(物理学中称标量),数量(或标量)只有大小,没有方向。1.在物理学和工程学中,几何向量更常被称为矢量。2.一般印刷用黑体的小写

人工智能数学基础-线性代数3:线性空间、线性相关及基

一、向量空间(线性空间)及基域线性空间是在考察了大量的数学对象(如几何学与物理学中的向量,代数学中的n元向量、矩阵、多项式,分析学中的函数等)的本质属性后抽象出来的数学概念。1.1、详细定义向量空间也称线性空间,设V是一个非空集合,P是一个数域。若:1.在V中定义了一种运算,称为加法,即对V中任意两个元素α与β都按某一法则对应于V内惟一确定的一个元素α