Bonjour !

Je rencontre des difficultés à remplir une matrice de sorte à ce qu'elle soit d'une taille précise.

Je m'explique :

Je discrétise l'axe des abscisses de façon régulière comme suit :

Je souhaite calculer l'atténuation acoustique (SBL) en chacun de ces points (au sol). Je sais calculer les différentes valeurs de SBL. Les différentes valeurs obtenues correspondent à l'atténuation sur une portion de r.

Par exemple : dans [A(1) A(2)] SBL = -25dB avec (A(1),A(2)) < rmax et (A(1),A(2)) > rmin

Je souhaiterais tracer SBL en fonction de r.

J'ai essayé de faire comme suit :

- Sachant que je connais SBL sur [A(1)...A(n)] et que SBL est constante sur [A(i) A(i+1)], à chaque calcul de sbl sur ces tronçons j'ai fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
n = numel([A(i):dr:A(i+1)]);
SBL = [SBL repmat(sbl,1,n)];
J'ai complété en début de routine avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
sbl = -200;
n = numel([rmin:dr:A(1)]);
SBL = [SBL repmat(sbl,1,n)];
Et en fin de routine :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
sbl = -200;
n = numel([A(end):dr:rmax]);
SBL = [SBL repmat(sbl,1,n)];
Ce que j'ai fiat ne me donne pas numel(SBL) = numel(r), c'est proche mais pas égal et je comprends pourquoi :A(i) ~= r(j) !!!

Je vous remercie d'avance pour vos réponses !