How do I summarize this code in a for-loop?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Geeniee
am 2 Feb. 2021
Kommentiert: Geeniee
am 2 Feb. 2021
I am supposed find the best rational approximation for e using the quotient q/p, such that q is a 1-digit number, 2-digit number up to a 6-digit number. I've figured out how to solve the problem but I am certain I can make my code more efficient with a for loop. Any leads on how that would look like?
Some of the code:
a = 1:9; b = 10:99; c = 100:999; d = 1000:9999; e = 10000:99999; f = 100000:999999;
q = a; %set q eual to the first vector (1 digit)
p = round(q*exp(1)); %q is integer expression for e*q
T = p./q; %gather their quotient in vector T
best = T(1); %run sorting algorithm
for i = T
if abs(i-exp(1))<abs(best-exp(1))
best = i; %keep checking the next value for being a better approximation
end
end
x = find(T==best); tal1 = p(x)+"/"+q(x); %save tal1 as the quotient of the best approximation
%now repeat the process for b through f (2digit numbers to 6 digit numbers)
0 Kommentare
Akzeptierte Antwort
the cyclist
am 2 Feb. 2021
Bearbeitet: the cyclist
am 2 Feb. 2021
for ne = 1:6 % Loop over the exponent
q = 10^(ne-1) : (10^ne-1);
p = round(q*exp(1)); %q is integer expression for e*q
T = p./q; %gather their quotient in vector T
best = T(1); %run sorting algorithm
for i = T
if abs(i-exp(1))<abs(best-exp(1))
best = i; %keep checking the next value for being a better approximation
end
end
x = find(T==best); tal1 = p(x)+"/"+q(x) %save tal1 as the quotient of the best approximation
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!