How do I summarize this code in a for-loop?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
the cyclist
2021년 2월 2일
편집: the cyclist
2021년 2월 2일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!