以前用的时候没这个问题,换了电脑,装的2010a,运行程序是出现问题。
是jplv7\Ucsd_garch里的gedinv(),
程序也不长就不贴了,要的话也可以贴。
关键是这个地方过不去了,
a=[h,m,l];
if any(x==a)
提示说dimensions不对,
x是个列向量,
a是个行向量。
如果a只有一个数的话当然没有问题,可是a是向量就过不去了。
不知是我哪里理解错了?
举个例子吧!
x=[1 2 3 4 5 6 7 8 9 0]‘;
a=[ 4 5 7];
any(x==a)
谁的电脑能把上面3行跑出来,或者如何修改达到同样目的,或者直接指出我哪里理解有误!
十分感谢!
========================================
便于讨论我还是把程序加上吧,呵呵
function num = gedinv(x,nu)
% PURPOSE:
% Evaluates the Probabiliy a vector of observations x(Nx1)
% has if drawn from a Generalzed Error Dist'n with parameter nu
%
%
% USAGE:
% num = gedinv(x,nu)
%
% INPUTS:
% x - Data
% nu - Shape parameters
%
% OUTPUTS:
% num - Inverse CDF values form a GED
%
% COMMENTS:
% The exponential power distn with variance normalized to 1
%
% f(x)=Kd * exp (-|x|^nu)
% KD = inv(2 * gamma (1+(1/nu) ) )
%
% Taken from Tadikamalla 1980
%
% Included in the ucsd_garch toolbox and the JPL library
% Requires the JPL toolbox
%
% Author: Kevin Sheppard
%
kevin.sheppard@economics.ox.ac.uk
% Revision: 2 Date: 12/31/2001
high=5;
low=-5;
for i=1:20
mid=(high+low)/2;
h=gedcdf(high,nu);
m=gedcdf(mid,nu);
l=gedcdf(low,nu);
a=[h,m,l];
if any(x==a)
num=a(x==a);
elseif x<h && x>m
low=mid;
else
high=mid;
end
end
num=mid;
注释有点长 看着闹心!
if any那的问题,因为以前用的时候,挺好使,从来没在意过,这下不好用了,所以请教!