声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1701|回复: 4

[综合讨论] 求助:一个关于标准偏差的计算的问题

[复制链接]
发表于 2009-1-27 17:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有一组二进制数a,100万位,将其数中的0都变为-1,然后向左移一位,移动前与移动后的数的前10位的各位相乘,结果然后再相加,例如:

        1  1  -1   -1  1  1  1  -1  -1
    ×  1 -1  -1    1  1  1 -1  -1   1
————————————————
        1 -1    1  -1  1  1 -1   1  -1          相加s1=1-1+1-1+1+1-1+1-1=1

以后每移动一次都和原数a做同样的相乘与相加得到s,然后求出s的标准偏差,

标准偏差公式:g= Sqr(∑(sn-s拨)^2 /(n))
公式中代表总和,s拨代表s的算术平均值,^2代表二次方,Sqr代表平方根


我做出如下的程序:


clear all
clc
a=load('ransuu5.txt');  %读出数据ransuu5.txt
a(find(a==0))=-1;
for i=1:1000000;
b=circshift(a,-[1,i]);
d(1:10)=a(1:10).*b(1:10);
e=sum(d(1:10));
f=sum(e)/1000000;
g(i)=sqrt(sum((f-e)^2)/1000000);
end
plot(g(1:100))

但是我得出的结果不正确。请高手指教,哪里有问题,怎样修改,谢谢。
回复
分享到:

使用道具 举报

发表于 2009-1-28 23:40 | 显示全部楼层

回复 楼主 0342147 的帖子

ransuu5.txt可否上传?
a等於什麽? 数值或文字?
楼主的程序, 感觉很怪! 没有错误讯息吗?
 楼主| 发表于 2009-1-29 17:56 | 显示全部楼层
a是一个100万位的二进制数值,由于文件太大,无法上传.不过有一个512位的数值可以作参考.运行的时候没有出现错误的讯息.

ransuu_A5.txt

1 KB, 下载次数: 4

发表于 2009-1-30 21:48 | 显示全部楼层
过年期间, 有点懒的细看! 刚刚细看下楼主的程序并试试! 可能专业水平有限, 不是很明白楼主爲何如此计算的逻辑! 还是有些疑问?
每次相乘与相加得到的s, 不是应该是一个值而已, 即e值仅一个值, 哪来标准偏差? 还有爲何画g(1:100), 要判断什麽?
是不是要求一系列s的标准偏差? 但楼主的程序每次回圈好像都在算! 不解!
还有标准偏差有现成的函数std!
 楼主| 发表于 2009-3-10 16:48 | 显示全部楼层
e是想求每向左移动一次得出来的值,所以应该有512个;
至于画g(1:100),现在我也觉得有点多余,应该去掉.现在不解的是,运行结果总是不对.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-2 21:46 , Processed in 0.072107 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表