2015-07-12 8 views
1

Я делаю гауссовые процессы и я рассчитал регрессию в год от данной матрицы, где каждая строка представляет собой год, поэтому код:Построение 3D-графика нормированных цен в MatLab

M1 = MainMatrix; %This is the given Matrix 
ker [email protected](x,y) exp(-1013*(x-y)'*(x-y)); 
[ns, ms] = size(M1); 

for N = 1:ns 
    x = M1(N,:); 
    C = zeros(ms,ms); 
    for i = 1:ms 
     for j = 1:ms 
      C(i,j)= ker(x(i),x(j)); 
     end 
    end 

    u = randn(ms,1); 
    [A,S, B] = svd(C); 
    z = A*sqrt(S)*u; % z = A S^.5 u 

И я хочу построение каждой регрессии на графике 3D, как показано ниже:

enter image description here

Я знаю, что участок является ribbon, но я не знаю, как я могу это сделать

ответ

1

Нужный участок может быть сформирован без использования ribbon. Просто используйте surf -площадь по всем ценам и fill3 -площадь для самолета на z = 0. Границы плоскости вычисляются из фактических пределов фигуры. Поэтому нам нужно установить пределы перед построением плоскости. Затем требуется несколько корректировок для создания почти того же внешнего вида.

Вот код:

% generate some data 
days = (1:100)'; 
price = days*[0.18,-0.08,0.07,-0.10,0.12,-0.08,0.05]; 
price = price + 0.5*randn(size(price)); 
years = 2002+(1:size(price,2)); 

% prepare plot 
width = 0.6; 
X = ones(size(price,1),1)*0.5; 
X = [-X,X]*width; 
figure; hold on; 

% plot all 'ribbons' 
for i = 1:size(price,2) 
    h = surf([days,days],X+years(i),[price(:,i),price(:,i)]); 
    set(h,'MeshStyle','column'); 
end 

% set axis limits 
set(gca,'ZLim',[-20,20]); 

% plot plane at z=0 
limx = get(gca,'XLim'); 
limy = get(gca,'YLim'); 
fill3(reshape([limx;limx],1,[]),[flip(limy),limy],zeros(1,4),'g','FaceAlpha',0.2) 

% set labels 
xlabel('Day of trading') 
ylabel('Year') 
zlabel('Normalized Price') 

% tweak appearance 
set(gca,'YTick',years); 
set(gca,'YDir','reverse'); 
view([-38,50]) 
colormap jet; 
grid on; 
%box on; 

Это результат: result1

0

Это ribbon участок с дополнительной поверхностью при у = 0, которое может быть обращено с fill3

Смежные вопросы