Bonjour,
Petite question pour faire un beau code matlab.
En invoquant la commande bode, matlab me renvoit des matrices 3D dont les dimensions sont 1*1*33
Pour en faire des vecteurs unidimensionnels, je fais une laborieuse boucle :Code:xi = 0.2; wn = 10; K = 2; G = tf([K*wn*wn],[1 2*xi*wn wn*wn]); [mag,phase,w] = bode(G); magdb = 20*log10(mag);
Ca marche mais je pensais plus elegant et rapide de faire simplementCode:sizeW = size(w); nbSamples = sizeW(1); VmagdB = []; VPhase = []; for i=1:nbSamples VmagdB = [VmagdB ; magdb(1,1,i)]; VPhase = [VPhase ; phase(1,1,i)]; end
mais ca, ca reste des matrices 3D. Y a-t-il mieux que la boucle for ?Code:VmagdB = magdb(1,1,:); VPhase = phase(1,1,:);
Merci
Patrick
-----