I am having trouble with the if cycle.

1 view (last 30 days)
kontrl = 3.197442310920451e-14
if kontrl>=-10^-20 & kontrl<=10^-20
a = 4
else
a = 10
end
% "a = 4" should be.
  2 Comments
Stephen23
Stephen23 on 10 Aug 2017
Edited: Stephen23 on 10 Aug 2017
@Muhendisleksi: your upper bound is much smaller than kontrl:
>> 10^-20 <= 3.197442310920451e-14
ans = 1
Why do you think that a should be 4 ?
Jan
Jan on 10 Aug 2017
Note: While 10^-20 is an expensive power operation, 1e-20 is a cheap constant.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 10 Aug 2017
No, that is not correct. "a=4" is given only for values that are in the range +/- 1/10^20 but your value is more than 3000000 times larger than the upper end of that, at roughly +3/10^14
  2 Comments
Muhendisleksi
Muhendisleksi on 10 Aug 2017
Edited: Muhendisleksi on 10 Aug 2017
"kontrl" is constantly changing. How can I make this dynamic?
Walter Roberson
Walter Roberson on 10 Aug 2017
a = zeros(1, 100);
for N = 1 : 100
kontrl = randn(1,1) * 1E-20;
if kontrl>=-10^-20 & kontrl<=10^-20
a(N) = 4;
else
a(N) = 10;
end
end
a

Sign in to comment.

More Answers (0)

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!