Matlab中的函数分解
我正在学习matlab,正在练习函数分解 我基本上有一段很长的代码可以工作,但我正试图用支持函数将其分解成更小的部分 我花了很长时间调试它,我的第一个支持函数“readAndPrintMonths”正在运行,但“calculationLoop”有问题 我当前收到的错误消息包括: 使用月份时出错(第36行) 请输入D printMonthlyStats>calculationLoop中出错(第20行) monthData=数据(月份,3:33) printMonthlyStats中的错误(第6行) 计算循环(数据,月) 这里是代码。Matlab中的函数分解,matlab,debugging,decomposition,Matlab,Debugging,Decomposition,我正在学习matlab,正在练习函数分解 我基本上有一段很长的代码可以工作,但我正试图用支持函数将其分解成更小的部分 我花了很长时间调试它,我的第一个支持函数“readAndPrintMonths”正在运行,但“calculationLoop”有问题 我当前收到的错误消息包括: 使用月份时出错(第36行) 请输入D printMonthlyStats>calculationLoop中出错(第20行) monthData=数据(月份,3:33) printMonthlyStats中的错误(第6行)
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
您没有将变量
month
传递到calculationLoop
,这会导致函数调用内置函数而不是您的变量