Я изучаю matlab и практикую функциональную декомпозицию.Необходимость функционального разложения в Matlab
У меня в основном был длинный кусок кода, который работал, но я пытаюсь разбить его на более мелкие куски с поддерживающей функцией.
Я потратил возрасты отладки, и получил свою первую функцию поддержки работы «readAndPrintMonths», но у меня возникает проблемы с
сообщений об ошибках «calculationLoop» В настоящее время я является: использование
Ошибки месяц (линия 36) Пожалуйста, введите D.
Ошибка в printMonthlyStats> calculationLoop (строка 20) monthData = данные (месяц, 3: 33);
Ошибка в printMonthlyStats (строка 6) calculationLoop (данные, месяцы)
Anyhere здесь код.
function printMonthlyStats (inputCsvFilename)
% Reads a csv file of daily rainfalls over a year.
% Prints the total, max, and average rainfalls for each month.
[data, months] = readAndPrintMonths(inputCsvFilename);
for month = 1 : 12
[total, mean, maxFall] = calculationLoop(data, months)
end
end
function [data, months] = readAndPrintMonths(Filename)
% creates all required headings
data = csvread(Filename);
months = ['Jan';'Feb';'Mar';'Apr';'May';'Jun';'Jul';'Aug';'Sep';'Oct';'Nov';'Dec'];
fprintf('Monthly rainfall statistics\n');
fprintf('Month Total Max Mean\n');
end
function [total, mean, maxFall] = calculationLoop(data, months)
% runs a loop containing calculations for total mean and max rainfall
monthData = data(month, 3 : 33);
daysInMonth = data(month, 2);
total = sum(monthData);
mean = total/daysInMonth;
maxFall = max(monthData);
fprintf(' %3s %5.1f %5.1f %5.1f \n', months(month, 1:3), total, maxFall, mean);
end