matlab x轴范围中,b=cov(x,y)/...

matlab里面的求协方差函数
matlab里面的求协方差函数
一:matlab里面关于方差和协方差的几点需要注意的
求均值的函数:mean
求方差的函数:var
求协方差的函数:cov
1 如果a,b是向量,则:
cov(a,b)相当于是[D(a),cov(a,b);cov(b,a),D(b)],其中D(a)和D(b)分别代表了a,b的方差。cov(a,b)和cov(b,a)分别代表了两者之间的协方差
&& a=[1.1 2.2 3 4.5 0.8]
&& b=[1.3 2.4 2.1 5 3.3]
&& cov(a,b)
其中,对角线的值是两个向量的方差,斜对角线的是两个向量之间的协方差
2 如果a,b是矩阵,则:
cov(a,b)相当于是cov(a(:),b(:)),举例说明:
&& a=randn(4);
&& b=randn(4);
&& cov(a,b)
/////////////////////////////////////////////////////////////////////////////
&& cov(a(:),b(:))
另外,matlab里面关于cov函数的说明解释的很详细:
cov(x), if x is a vector, returns the variance of x. For matrix input X, where each row is an observation, and each column is a variable, cov(X) is the covariance matrix. diag(cov(X)) is a vector of variances
for each column, and sqrt(diag(cov(X))) is a vector of standard deviations. cov(X,Y), where X and Y are matrices with the same number of elements, is equivalent to cov([X(:) Y(:)]).
cov(x) or cov(x,y) normalizes by N – 1, if N & 1, where N is the number of observations. This makes cov(X) the best unbiased estimate of the covariance matrix if the observations are from a normal distribution.
For N = 1, cov normalizes by N.
cov(x,1) or cov(x,y,1) normalizes by N and produces the second moment matrix of the observations about their mean. cov(X,Y,0) is the same as cov(X,Y) and cov(X,0) is the same as cov(X).
其使用示例可见:
我的热门文章
即使是一小步也想与你分享方差var、协方差cov、协方差矩阵(浅谈)-(二)_函数var
转载请注明:
&看完了三个概念之后,我们对三个概念有了一定了解(最起码公式要好好看看吧)
下面,我们来进入正题,说说matlab中的方差函数var 还有 协方差函数cov ,对于这两个函数,当然我们可以通过
matlab中help两下解决,但无奈对于英语是心有余而力不足,假如看官自认为英语还不错的话,你可以去help matlab去了。
&&&&好了,忠诚的小鸟们,开始上课:
这节咱们讲的是matlab中的方差函数var的用法及具体分析 , var
是用来求方差的,但是首先我们应该清楚的区分两个概念,即方差和样本方差的无偏估计,简要来说(你要是不想简要,详细细内容可以看上一篇)就是,方差公式中分母上是N,而样本方差无偏估计公式中分母上是N-1
(N为样本个数)。
OK!正题!
函数名称: var
函数功能:求解方差
函数用法:var(X)&&
%与var(X,0)相同
var(X,W,dim)
注:var(X,W)& %
W可以取0或1,取0求样本方差的无偏估计值(除以N-1;对应取1求得的是方差(除以N),
W也可以是向量,但必须与X中的第一个维度数相同,即length(W)=
size(X,1)&&&&&&&&&&
& 所以还存在:& var(X ,0 ,dim) % 除以N
dim =1 对每列操作& dim = 2 对每行操作
&&&&&&&&&&&&&&&
var(X ,1 ,dim) % 除以N-1 dim =1 对每列操作& dim = 2
对每行操作
var(X,W,dim)&& %
关于W取向量时,把W看做X中观察值发生的次数(或者说概率也行)
下面详细介绍秘籍:
.........................................................
对于X是向量时,把向量中每个元素看做一个样本
var(X)或者var(X,0)函数输出这个向量中元素的样本方差的无偏估计值,var(X,1)输出的是样本方差
&& a = [1 6 1 4];
&& aa = var(a)
&& a_var = var(a,1)
(sum((a-mean(a)).^2))/(length(a))
............................................................
对于X是矩阵时
把每行看做一个观察值,每列看做一个变量,函数输出一个行向量,每个元素计算的是该列的方差
&& X= [1 6 6;4 2 5;7 2 3]
&& XX=var(X)
(sum((X-repmat(mean(X),3,1)).^2))/(size(X,1)-1)&
&& X_var = var(X,1)
(sum((X-repmat(mean(X),3,1)).^2))/(size(X,1))&
——————————————————————————————
对于var(X ,0 ,dim) 或者 var(X ,1 ,dim) 前面已说 0 对应 除以N-1;
1对应除以N;&dim 指维度信息,默认为1,dim =1 就指对每列操作; dim =2
就指对每行操作。
下面以 var(X ,0 ,dim) 为例进行试验验证:
参考结果:默认为1情况↑(往上看)
&& var(X ,0 ,2)
&&& 2.3333
&&& 7.0000
&& Y = X';
7.0000& (一样吧)
...............................................................
对于 var(X,W)、var(X,W,dim) 中W为向量的情况:
把W看做X中对应观察值发生的次数(或者说概率也行)处理,为了清除,现粘贴matlab部分源代码(笔者好心已加注释)如下:
function y = var(x,w,dim)
%&& The weighted variance for a
vector X is defined as
VAR(X,W) = SUM(W.*RESID.*CONJ(RESID)) / SUM(W)
%&& where now RESID is computed
using a weighted mean.
&&& wresize =
ones(1,max(ndims(x),dim)); wresize(dim) =
reshape(w ./ sum(w),
wresize);&&&&&&&&&&&&&&&&&&&&&
&& % w 看做是x中每个观察值的出现次数,这样w ./
sum(w)即使每个观察样本出现的概率,
bsxfun(@times, w,
x);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%根据这个概率权重求出期望值或者平均值sum(x0, dim)
bsxfun(@minus, x, sum(x0,
dim));&&&&&&&&&&&&&&&&&&&
&& %where now RESID is computed
using a weighted mean. 这儿就是那个RESID
sum(bsxfun(@times, w, abs(x).^2),
dim);&&&&&&&&&&&&
逐行验证:
&& x= [1 6 6;4 2 5;7 2 3]
&& w = [1 2 3];
&& dim = 1 ;
&& n = size(x ,dim)
&& wresize =
ones(1,max(ndims(x),dim))
&& wresize(dim) = n
&& w = reshape(w ./ sum(w),
&&& 0.3333
&&& 0.5000
&& x0 = bsxfun(@times, w, x)
&& x = bsxfun(@minus, x, sum(x0,
sum(bsxfun(@times, w, abs(x).^2), dim)
&& var (x,w)&
%验证下成果
你要是还感觉晕的话(),下面以第一列为例说明W作用
&& X= [1 6 6;4 2 5;7 2 3];
X(:,1);&&&&&&&&&&&&&&&&
%取出第一列
&& b = w ./
sum(w);&&&&&&&&&&&
%求出概率矩阵
a0=a.*b;&&&&&&&&&&&&&&&&&&&
a1=sum(a0);&&&&&&&&&&&&&&&&
%求出第一列在W概率加权下的平均值
&& a2=a -a1;
w.*(a2.^2)&&&&&&&&&&&&&
%W看做是每个观察值的出现次数,求出在此加权下的方差
注意: 需要注意的是,这种情况下求出的是样本的统计方差(也就是除以N的那种,因为式中w ./
sum(w)),并非样本方差无偏估计值
当然对于var(X,W,dim)中dim=1(对每列求方差)dim=2(对每行求方差)也可以进行验证,由于方式基本与之前的相同,在此不再赘述
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&二师兄,快到了!&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&↘
&&&&&&&&&&&&&&&&&&&&&&&&
&................................................................................
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。苹果/安卓/wp
积分 16614, 距离下一级还需 1686 积分
权限: 自定义头衔, 签名中使用图片, 隐身, 设置帖子权限, 设置回复可见, 签名中使用代码
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡, 千斤顶, 变色卡下一级可获得
道具: 置顶卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 1 天连续签到: 1 天[LV.1]初来乍到
5000论坛币
ruti如题,谢谢,希望能够给出图形。或应文字表示图形。
这个问题Matlab我不会。但是如果用Mathematica来做,就很简单了。
其命令为(建议版本在7.0以上):
Animate[Plot3D[((a*x + b*y)*(x*y)/(0.5*x + 0.5*y)^2)^2, {x, 0, 1}, {y,
0, 1}, PlotRange -> Automatic], {a, 0, 1}, {b, 0, 1},
AnimationRunning -> False]
载入中......
本帖被以下文库推荐
& |主题: 207, 订阅: 4
爱智慧;hanxiao528;panjian39 ;夸克之一;np84;yyxf ;007jg ;nkunku;*****xyz;
本帖最后由 tmdxyz 于
10:20 编辑
这个问题Matlab我不会。但是如果用Mathematica来做,就很简单了。
其命令为(建议版本在7.0以上):
Animate[Plot3D[((a*x + b*y)*(x*y)/(0.5*x + 0.5*y)^2)^2, {x, 0, 1}, {y,
& & 0, 1}, PlotRange -& Automatic], {a, 0, 1}, {b, 0, 1},
AnimationRunning -& False]
(153.48 KB)
08:47:12 上传
总评分:&经验 + 100&
学术水平 + 3&
热心指数 + 3&
信用等级 + 3&
如果是给定a,b的话 这个应该没什么难度 surf就能实现
如果是变动a,b的话 比较难 不过可以试试用GUI下的解决方案 原来是设定两个文本框或者滑动按钮 设定a,b后触发计算z的事件 并实时更新图像 楼主可以试试
热心帮助其他会员
总评分:&热心指数 + 2&
liuxin9023 发表于
如果是给定a,b的话 这个应该没什么难度 surf就能实现
如果是变动a,b的话 比较难 不过可以试试用GUI下的解决 ...非常感谢,能否详细点。如果ab固定的话。
爱智慧;hanxiao528;panjian39 ;夸克之一;np84;yyxf ;007jg ;nkunku;*****xyz;
本帖最后由 nkunku 于
04:58 编辑
假设a=1,b=1,且x和y的范围都是[0,10],那么z与x和y的关系是这样:
(130.16 KB)
04:53:55 上传
(130.69 KB)
04:57:55 上传
nkunku 发表于
假设a=1,b=1,且x和y的范围都是[0,10],那么z与x和y的关系是这样:非常感谢您的回答。
希望能够给出matlab的仿真图。
a、b、x、y、z都是小于1,大于0的。
在仿真模块图中,源函数(source)里没有看到任意组合的函数功能。
如果把z看做源函数的话,里面有两个变量即x、y,不知道如何做下一步。
以及在simulink中如何把源函数写出来。
爱智慧;hanxiao528;panjian39 ;夸克之一;np84;yyxf ;007jg ;nkunku;*****xyz;
tmdxyz 发表于
这个问题Matlab我不会。但是如果用Mathematica来做,就很简单了。好的,非常感谢,我没有使用过mathematic,我试试,如果行,给5000论坛币。
爱智慧;hanxiao528;panjian39 ;夸克之一;np84;yyxf ;007jg ;nkunku;*****xyz;
tmdxyz 发表于
这个问题Matlab我不会。但是如果用Mathematica来做,就很简单了。
其命令为(建议版本在7.0以上):你的mathematica软件能否传上来,说明安装方法,我下了几个,都不能用。
你可以设置5000论坛币。
爱智慧;hanxiao528;panjian39 ;夸克之一;np84;yyxf ;007jg ;nkunku;*****xyz;
因为这个软件有800多M,所以上传困难。你不妨到本论坛搜索,好像有。
实在找不着,就通过google。
我刚才搜索到的一个速度较快的地方为:
用电驴下载速度约为1M/s。
nkunku 发表于
假设a=1,b=1,且x和y的范围都是[0,10],那么z与x和y的关系是这样:谢谢您的帮助,如果能帮忙写出MATLAB或vensim的系统结构图。
将非常感谢,倾我所有给予您报酬。
爱智慧;hanxiao528;panjian39 ;夸克之一;np84;yyxf ;007jg ;nkunku;*****xyz;
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
论坛法律顾问:王进律师

我要回帖

更多关于 matlab x轴范围 的文章

 

随机推荐