首页 > 编程知识 正文

matlab协方差矩阵怎么求,matlab内联表达式出错

时间:2023-05-05 21:48:09 阅读:51183 作者:4935

偶然发现了matlab2010a的错误。 在某些非常特殊的情况下,matlab2010a的向量内积(即*指令)会产生错误的结果。

以下叙述具体现象:

1 .程序源代码

(注意:要运行此程序,必须将两个matlab数据文件den1.mat和kern1.mat与程序位于同一文件夹中。)

clc;

清除器

加载(de n1.mat );

LOAD(Kern1.mat );

x=kern;

y=den(:

z=0;

fori=1:长度(y )

z=zx(1,I ) y ) I,1 );

结束

z1=x*y;

Z2=sum(y

2 .有关程序的说明

)1) den1.mat是matlab数据文件。 您可以从这里下载http://ishare.iask.Sina.cn/f/22182234.html。 其中,数据是1*36维的行向量,如下所示: (其中-是负号) )。

[1- 34.9104720617963591.960057485552-6494.9069509398751826.3768981548-320501.8574798841598411.70513468-66006 4.4665517178938782.362431-405639572.104363809205656.532103-1428012719.05092238285526.53077-31255592609.96666 217670.624123085871743.18171-2198564376.37758139513287.06250-786754091.156305392372548.725918-172287-786755555 325918-1 1647-21964736.31408186259618.77763060-1507763085.68697902300647.808748368-48367.82278911176030.54888

)2) kern1.mat也是matlab数据文件。 您可以从这里下载http://ishare.iask.Sina.cn/f/22182235.html。 其中,数据是1*36维的行向量,如下所示:

[ 111111111111111111111111111111111111111111111111

)3) den和kern分别是来自den1.mat和kern1.mat的1*36维行向量,其中kern的所有元素都是1。

)4)显然,该程序的作用是用三种不同的程序方法计算den中所有元素的和。 即:

z1用向量内积计算,z2直接求元素和,z循环求向量内积。

3 .错误现象说明

)1) MATLAB7)版本7.0.0.19920 (R14 ) ) )运行此程序后得到的z=z1=z2=5.3111e-008完全相同,这符合我们的数学常识

但不可思议的是,matlab2010a出现了奇怪的结果。

)在matlab210a中,z=z2=5.311088491222193e-08,z1=0。

这不是很奇怪吗! 这是matlab2010a的错误吗!

)3) matlab210b和matlab210a出现类似问题。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。