Scilab erreur Multiplication Incoherente.
Résolu/Fermé
keurdange
Messages postés
720
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
13 juillet 2016
-
11 juil. 2011 à 21:06
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 12 juil. 2011 à 21:11
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 12 juil. 2011 à 21:11
A voir également:
- Scilab erreur Multiplication Incoherente.
- Erreur 0x80070643 - Accueil - Windows
- Scilab - Télécharger - Édition & Programmation
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 10016 epson - Forum Imprimante
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
11 juil. 2011 à 21:52
11 juil. 2011 à 21:52
Quand tu fais t=0:Te:5*T; t est une matrice.
Donc avec s=((-1)^n/(2*n+1))*cos(2*%pi*(2*n+1)*fo*t); s est alors une matrice aussi.
Or S1 est un nombre, et on ne peut pas additionner un nombre et une matrice !
Je pense que tu devrais mettre P à la place de t dans tes calculs de s. Il y a d'autres erreurs, mais je te laisse essayer de les corriger seuls selon ce que tu veux faire.
PS : dans les forums sur CCM, de même qu'il y a les balises, gras, italique, et souligné, il y a les balises de code, ce qui est très pratique pour conserver l'indentation des programmes.
N'hésite pas à t'en servir ;-)
Donc avec s=((-1)^n/(2*n+1))*cos(2*%pi*(2*n+1)*fo*t); s est alors une matrice aussi.
Or S1 est un nombre, et on ne peut pas additionner un nombre et une matrice !
Je pense que tu devrais mettre P à la place de t dans tes calculs de s. Il y a d'autres erreurs, mais je te laisse essayer de les corriger seuls selon ce que tu veux faire.
PS : dans les forums sur CCM, de même qu'il y a les balises, gras, italique, et souligné, il y a les balises de code, ce qui est très pratique pour conserver l'indentation des programmes.
N'hésite pas à t'en servir ;-)
11 juil. 2011 à 22:54
11 juil. 2011 à 23:29
to=1/fo;
pas=to/100;
t=0:pas:d*to;
s1=0;
for k=0:n,
a=4/%pi*sin(2*%pi*(2*k+1)*fo*t)/(2*k+1);
s1=s1+a;
end
plot2d (t,s1)
endfunction
il ya t et ca marche
12 juil. 2011 à 00:19
function test(n,f,a,to)
T=1/f;
to=T/8;
fo=1/to;
Te=T/100;
Fe=1/Te;
t=0:Te:5*T;
S1=0;S2=0;S3=0;S4=0;S5=0; taux=100;
for P=0:n
s=((-1)^n/(2*n+1))*cos(2*%pi*(2*n+1)*fo*t);
S1=S1+s;
s=(1/(2*n+1))*sin(2*%pi*(2*n+1)*fo*t);
S2=S2+s;
s=(sinc(%pi*n*fo*taux))*cos(2*%pi*n*fo*t);
S3=S3+s;
s=((-1)^n/(2*n+1)^2)*sin(2*%pi*(2*n+1)*fo*t);
S4=S4+s;
end
for M=1:n
s=(1/(4*(n^2)-1))*cos(4*%pi*n*fo*t);
S5=S5+s;
end
S1=((4*a)/%pi)*S1;
S2=((4*a)/%pi)*S2;
S3=((2*a*taux)/to)*S3;
S4=((8*a)/(%pi)^2)*S4;
S5=((-2*a)/%pi)*S5;
xset('window',5);
subplot(5,2,1)
plot2d(t,S1)
xtitle('Representation temporelle','t','S1');
N1=length(S1);
S1f=fft(S1)/N1;
subplot(5,2,2)
plot2d(f,abs(S1f));
xtitle('Representation frequentielle','f','S1f')
subplot(5,2,3)
plot(t,S2)
xtitle('Representation temporelle','t','S2')
N2=length(S2);
S2f=fft(S2)/N2;
subplot(5,2,4)
plot2d3(f,abs(S2f))
xtitle('Representation frequentielle','f','S2f')
subplot(5,2,5)
plot2d(t,S3)
xtitle('Representation temporelle','t','S3')
N3=length(S3);
S3f=fft(S3)/N3;
subplot(5,2,6)
plot2d3(f,abs(S3f))
xtitle('Representation frequentielle','f','S3f')
subplot(5,2,7)
plot2d3(t,S4)
xtitle('Representation temporelle','t','S4')
N4=length(S4);
S4f=fft(S4)/N4;
subplot(5,2,8)
plot2d(f,abs(S4f))
xtitle('Representation frequentielle','f','S4f')
subplot(5,2,9)
plot2d3(t,S5)
xtitle('Representation temporelle','t','S5')
N5=length(S5);
S5f=fft(S5)/N5;
subplot(5,2,10)
plot2d3(f,abs(S5f))
xtitle('Representation frequentielle','f','S5f')
endfunction
xset('window', 6); //T=1/f=1/100=0.01 or to=T/8=0.01/8
test(3,100,3,0.00125);
xset('window', 7)
test(10,100,3,0.00125);
xset('window', 8)
test(50,100,3,0.00125);
xset('window', 9)
test(100,100,3,0.00125);
12 juil. 2011 à 19:01
s=(sinc(%pi*n*fo*t))*cos(2*%pi*n*fo*t);
par
s=(sinc(%pi*n*fo*t)).*cos(2*%pi*n*fo*t); //.* au lieu de * pour multiplier les elements de 2 vecteurs
et
S3=((2*a*t)/to)*S3;
par
S3=((2*a*t)/to).*S3; //.* au lieu de *
12 juil. 2011 à 21:11