# Displaying actual values from coded values for a for loop.

조회 수: 1 (최근 30일)
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 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
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Wiktor Filo 2021년 1월 5일
Thank you so much this works perfectly!

댓글을 달려면 로그인하십시오.

### 카테고리

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