MATLAB中imresize用'bic'替代'bicubic'为何无报错且结果一致?
为什么MATLAB中imresize使用'bic'代替'bicubic'不会报错?
这其实是MATLAB里一个很实用的设计——参数缩写匹配机制在起作用!
核心原因:唯一可识别的参数缩写
MATLAB的很多内置函数(包括imresize)都支持参数名的缩写匹配,只要你输入的缩写是唯一且不会与其他可选参数产生歧义的,函数就能准确识别你要调用的选项:
imresize支持的插值方法里,完整名称为'bicubic'的选项,没有其他同类型参数是以'bic'开头的(其他选项比如'nearest'、'bilinear'、'lanczos2'等,开头都和'bic'不重复)。- 所以当你输入
'bic'时,MATLAB能明确判断你指的就是'bicubic'插值,自然不会报错,执行效果和使用完整参数名完全一致。
额外补充:缩写的边界
这种缩写不是无限缩短的,如果缩写会导致歧义,MATLAB就会报错。比如你尝试用'b'作为插值方法参数,MATLAB会提示错误——因为'b'开头的插值方法有'bilinear'和'bicubic'两种,函数无法确定你要选哪一个。
这种设计是MATLAB为了提升代码编写效率做的优化,类似的缩写在很多函数里都能见到,比如plot函数的'LineWidth'可以缩写为'LineW'甚至'L'(只要无歧义)。
内容的提问来源于stack exchange,提问作者ONION
相关产品推荐
相关产品推荐

