Bonjour à tous,
je n'arrive pas à comprendre le fonctionnement des class sous matlab. Apparemment, ça ne fonctionne pas comme en Java par exemple.
J'ai bien sur essayer de trouver un tuto, j'ai emprunté 2 bouquins, mais au final, je ne pige pas pourquoi j'ai cette erreur:
Bon, je comprend bien que ma fonction n'est pas def, mais pourtant, SI, je l'ai définie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ??? Undefined function or method 'isColone' for input arguments of type 'double'. Error in ==> Signal>Signal.Signal at 23 if (isColone(signal)==0)
Je vous envoie mon code, en espérant que qqn arrive à me faire comprendre mon erreur.
J'en profite pour vous demander un petit coup de main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 classdef Signal %Signal: crée un Signal représenté par un vec colone. % Contenu: signal: signal échantillonné (vec colone) % fréquence échantillonnage: Fe % axe temporel: axe_temps % axe frequentiel: axe_freq % nombre de point: nbp properties signal; Fe; axe_temps; axe_freq; nbp; end methods %_____Constructeur function obj = Signal(signal,Fe) if isColone(signal) obj.signal=signal; else obj.signal=signal'; end obj.nbp=length(signal); obj.Fe=Fe; obj.axe_temps=(1:obj.nbp)/Fe; %pour un vec de nbp points, la durée total d'observation est de n/fe (s) obj.axe_freq=(1:obj.nbp)*Fe/obj.nbp; %la FFT sur un axe 0->N se retrouve sur un axe 0->Fe end %_____FinConstructeur %_____Permet de savoir si un vecteur est colone ou pas: retourn1 si vec colone 0 sinon function bool = isColone(s) tempo=size(s); if isequal(tempo(2),1) bool= 1; return; else bool= 0; return; end end end end %class
lorsqu'on crée une méthode dans une classe, je ne comprend pas comment on accède à l'objet courant (en java, c'est this par exemple).
Par avance merci
Partager