Displaying actual values from coded values for a for loop.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Wiktor Filo
el 5 de En. de 2021
Comentada: Wiktor Filo
el 5 de En. de 2021
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.
0 comentarios
Respuesta aceptada
Mischa Kim
el 5 de En. de 2021
Editada: Mischa Kim
el 5 de En. de 2021
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
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!