Bonjour,
J'ai toujours utilisé Matlab pour des scripts bateaux (sans jamais utiliser de classes), et j'ai jamais réellement touché à la POO.
Je développe un script pour simuler une régulation de température dans un bâtiment comportant une dizaine de zones. Pour faire simple et pas avoir 400 variables et un script imbuvable, je passe par des classes. Pour mettre à jour plusieurs valeurs d'un coup, je passe par une ligne du genre
Y a t'il une solution pour simplifier la ligne et faire directement, en passant par des pointeurs (qui ne semble pas exister sous matlab) ou autre?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Z11.data.temperature = Z11.data.temperature.setValue(20);
Si ça peut aider, ma classe est définie comme suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Z11.data.temperature.setValue(20);
Merci d'avance
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 classdef cValue properties previous = []; now = 0; future = []; previousMaxSize = 0; % Taille maximale du vecteur des valeurs passées previousCurrentSize = 0; % Taille actuelle du vecteur des valeurs passées futureMaxSize = 0; % Taille maximale du vecteur des valeurs prédites futureCurrentSize = 0; % Taille actuelle du vecteur des valeurs passées end methods function obj = setValue(obj, val) obj.previousCurrentSize = min(obj.previousCurrentSize+1, obj.previousMaxSize); for i=obj.previousCurrentSize:-1:2 obj.previous(i) = obj.previous(i-1); end obj.previous(1) = obj.now; obj.now = val; end end end
Partager