source: trunk/src/composite.m @ 325

Last change on this file since 325 was 325, checked in by pinsard, 13 years ago

rehab MSG, EPSAT tools (to be cont.)

  • Property svn:keywords set to Id
File size: 2.1 KB
Line 
1function [comp]=composite(data,ind,jav,jap,dim_comp)
2
3%COMPOSITE Calcul de composites
4
5%+
6%
7% .. _composite.m:
8%
9% ===========
10% composite.m
11% ===========
12%
13% DESCRIPTION
14% ===========
15%
16% Calcul de composites
17%
18% Entrees :
19%
20% data
21%    donnees, vecteur ou matrice de n dimensions
22% ind
23%    indice des valeurs de data servant de bases au composite, vecteur
24% jav
25%    nombre de points avant chaque indice
26% jap
27%    nombre de points apres chaque indice
28% dim_comp
29%    dimension sur laquelle le composite est calcule
30%
31% Sortie :
32%
33% comp
34%    composite
35%
36% EXAMPLES
37% ========
38%
39% ::
40%
41%   >> x=[0:0.5:100];
42%   >> f=sin(x);
43%   >> ind=find(f>0.96 & f<=1);
44%   >> jav=3;
45%   >> jap=8;
46%   >> dim_comp=1;
47%   >> % Calcul le composite en prenant
48%   >> % 3 points avant et 8 points apres chaque indice choisi
49%   >> comp_f=composite(f,ind,jav,jap,dim_comp);
50%   >> figure;plot(comp_f);
51%
52% TODO
53% ====
54%
55% EVOLUTIONS
56% ==========
57%
58% $Id$
59%
60% $URL$
61%
62%-
63
64dim=ndims(data);
65%% Quand data a 2 dimensions
66% teste si ces 2 dimensions ne cachent pas un vecteur (si oui, fait dim=1)
67if dim==2
68  if size(data,1)==1
69    data=data';
70    dim=1;
71  end
72  if size(data,2)==1
73    dim=1;
74  end
75end
76
77%% Teste si ind ne contient pas de valeurs inferieures ou egales a jav
78% ou superieures a size(data,dim_comp)-jap
79% sinon pb pour extraire les series voulues par la suite
80if ~isempty(find(ind<jav))
81  disp('Erreur dans ind par rapport a jav');
82  return
83end
84if ~isempty(find(ind>size(data,dim_comp)-jap))
85  disp('Erreur dans ind par rapport a jap');
86  return
87end
88
89%% Adapte selon la taille de data
90% pour pouvoir ensuite extraire les series voulues
91x(1:2:dim*2)=',';
92x(2:2:dim*2)=':';
93
94if dim_comp==1
95  dav='';
96else
97  dav(1:2:dim_comp*2-2)=':';
98  dav(2:2:dim_comp*2-2)=',';
99end
100
101if dim_comp==dim
102  dap='';
103else
104  dap(1:2:(dim-dim_comp)*2)=',';
105  dap(2:2:(dim-dim_comp)*2)=':';
106end
107
108%% Extraction
109size_ext=[length(ind) size(data)];
110size_ext(dim_comp+1)=jav+1+jap;
111% allocation
112ext=zeros(size_ext);
113for n=1:length(ind)
114  eval(['ext(n' x ')=data(' dav 'ind(n)-jav:ind(n)+jap' dap ');']);
115end
116
117%% Calcul du composite
118comp=squeeze(nanmean(ext,1));
119
120
121
Note: See TracBrowser for help on using the repository browser.