题目
编写函数 <code>calc_power(base_val, exp_val)</code>,演示使用内部特殊变量 <code>nargin</code>(Number of Input Arguments)实现函数参数的默认缺省值机制:当用户仅传入底数时,指数默认自动设定为 2(求平方)。
输入格式:无需外部输入。
输出格式:分别展示传入 1 个参数与传入 2 个参数时的调用结果。
数据范围与约定:nargin 缺省参数处理。
思路与算法
1. nargin 的运行机制nargin 是每个函数内部自动生成的局部变量,其数值等于调用方当前实际传进来的实参总个数。
2. 默认参数标准设计模式
```matlabif nargin < 2 exp_val = 2; % 赋予默认值end```
3. 避免空指针/未定义错误
若调用方未传某个参数而函数内部未做 nargin 拦截直接使用该形参变量,将触发 `undefined variable` 崩溃。
完整程序
% Octave / MATLAB 第63题:nargin 默认参数处理
1;
function result = calc_power(base_val, exp_val)
% 如果只传入 1 个参数,指数默认为 2
if nargin < 2
exp_val = 2;
end
result = base_val ^ exp_val;
end
% 主程序
res1 = calc_power(5); % 使用默认指数 2 -> 5^2
res2 = calc_power(2, 8); % 显式指定指数 8 -> 2^8
fprintf("calc_power(5) [单参数,默认平方]: %d\n", res1);
fprintf("calc_power(2, 8) [双参数,计算2^8]: %d\n", res2);运行示例
输出:
calc_power(5) [单参数,默认平方]: 25
calc_power(2, 8) [双参数,计算2^8]: 256