Displaying actual values from coded values for a for loop.

조회 수: 1 (최근 30일)
Wiktor Filo
Wiktor Filo 2021년 1월 5일
댓글: Wiktor Filo 2021년 1월 5일
function leap_year_list = get_leap_years(start_year, end_year)
A = [start_year : end_year];
for i = start_year : end_year
is_leap_year(i)
end
end
% I have a function is_leap_year with one input (year) which determines whether that year is a leap year or not. If it is it displays 'True', if not it displays 'False'. I am meant to use that function in another function get_leap_years to output a list of leap years from a range given by two inputs (start_year and end_year).
% I've created an array start_year : end_year and used a for loop with the is_leap_year function. It seems to work but instead of the actual list of years I get True/False.
eg. start_year = 2019, end_year = 2021
output:
'False'
'True'
'False'
When ideally my output should only read 2020, as 2020 is the only leap year for that given range. Any help on how to tackle this is appreciated. Many thanks.

채택된 답변

Mischa Kim
Mischa Kim 2021년 1월 5일
편집: Mischa Kim 2021년 1월 5일
Wiktor, simply replace the is_leap_year(i) command with an if statement. Quick and dirty:
if (strcmp(is_leap_year(i),'True'))
display(A(i))
end
Better yet, make the return value of is_leap_year(i) a logical value (vs string). And replace the loop index i by ii, as i is also the imaginary unit in MATLAB. This would chnage your code to:
if is_leap_year(ii)
display(A(ii))
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Types에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by