Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Subscript indices must either be real positive integers or logicals.

1 vue (au cours des 30 derniers jours)
Jordi
Jordi le 8 Mai 2013
Clôturé : MATLAB Answer Bot le 20 Août 2021
Hi, I have this problem and i don't know why it appears:
??? Subscript indices must either be real positive integers or logicals.
Error in ==> SumaSin at 27 sin(1) = A(1)*sin(2*pi*f(1)*tt) + phi(1);
function [] = SumaSin()
fs = 44100;
dur=1;
N=2048;
tt = [0:(1/fs):dur-(1/fs)];
A = zeros(1,4);
A(1)=0.5;
A(2)=0.05;
A(3)=0.25;
A(4)=0.1;
phi = zeros(1,4);
phi(1)=0;
phi(2)=pi/2;
phi(3)=0;
phi(4)=pi;
sin = zeros(1,4);
f = zeros(1,4);
f(1) = fs/N*10;
f(2) = 2*fs/N*10;
f(3) = 3*fs/N*10;
f(4) = 4*fs/N*10;
sin(1) = A(1)*sin(2*pi*f(1)*tt) + phi(1);
sin(2) = A(2)*sin(2*pi*f(2)*tt) + phi(2);
sin(3) = A(3)*sin(2*pi*f(3)*tt) + phi(3);
sin(4) = A(4)*sin(2*pi*f(4)*tt) + phi(4);
sin = sin(1)+sin(2)+sin(3)+sin(4);
plot(tt,sin)
end

Réponses (1)

Iman Ansari
Iman Ansari le 8 Mai 2013
Hi. Use another name for your variable 'sin'. When you use it as a variable,then you can't use it as sinusoid function:
fs = 44100;
dur=1;
N=2048;
tt = [0:(1/fs):dur-(1/fs)];
A = zeros(1,4);
A(1)=0.5;
A(2)=0.05;
A(3)=0.25;
A(4)=0.1;
phi = zeros(1,4);
phi(1)=0;
phi(2)=pi/2;
phi(3)=0;
phi(4)=pi;
f = zeros(1,4);
f(1) = fs/N*10;
f(2) = 2*fs/N*10;
f(3) = 3*fs/N*10;
f(4) = 4*fs/N*10;
s(1,:) = A(1)*sin(2*pi*f(1)*tt) + phi(1);
s(2,:) = A(2)*sin(2*pi*f(2)*tt) + phi(2);
s(3,:) = A(3)*sin(2*pi*f(3)*tt) + phi(3);
s(4,:) = A(4)*sin(2*pi*f(4)*tt) + phi(4);
s = s(1,:)+s(2,:)+s(3,:)+s(4,:);
plot(tt,s)

Cette question est clôturée.

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by