Why I get ans = logical 1
古いコメントを表示
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 件のコメント
Geoff Hayes
2020 年 4 月 3 日
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
2020 年 4 月 3 日
採用された回答
その他の回答 (1 件)
David Hill
2020 年 4 月 3 日
編集済み: David Hill
2020 年 4 月 3 日
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;
カテゴリ
ヘルプ センター および File Exchange で Correlation and Convolution についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!