Why I get ans = logical 1
Ältere Kommentare anzeigen
for i=1:100
x(i)=normrnd(0,1);
end;
A=x(:);
for i=1:100
if (A(i)<0.9557 & A(i) > 0)
Aq(i)=0.497;
elseif (A(i)>0.9957)
Aq(i)=1.493;
elseif (A(i)<-0.9957)
Aq(i)=-1.493;
else
(A(i)>-0.9957 & A(i) <0)
Aq(i)=-0.497;
end;
end;
sum=0;
for i=1:100
sum = (A(i)-Aq(i))^2+sum;
end;
Avg = sum/100
2 Kommentare
Geoff Hayes
am 3 Apr. 2020
Mohamed - look closely at your else
else
(A(i)>-0.9957 & A(i) <0)
Aq(i)=-0.497;
end;
Should this be an elseif instead where (A(i)>-0.9957 & A(i) <0) is the condition?
Mohamed Mahir
am 3 Apr. 2020
Akzeptierte Antwort
Weitere Antworten (1)
David Hill
am 3 Apr. 2020
Bearbeitet: David Hill
am 3 Apr. 2020
Much easier way:
A=normrnd(0,1,[100,1]);
[~,~,a]=histcounts(A,[-10,-.9957,0,.9957,10]);
b=[-1.493;-0.497;0.497;1.493];
Aq=b(a);
s=sum((A-Aq).^2);
Avg = s/100;
1 Kommentar
Mohamed Mahir
am 3 Apr. 2020
Kategorien
Mehr zu Correlation and Convolution finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!