记录学习 Matlab 中的技巧。
fprintf 技巧
Matlab 中的运算均基于向量,甚至连输出函数 fprintf
也不例外。 对于一个实际问题:
对情侣参加婚礼, 个新郎为 、、, 个新娘为 、、。有人不知道谁和谁结婚,于是询问 位新人中的 位, 人回答道: 和 结婚; 和 结婚; 和 结婚。但 人说的全是假话。
为判明事实真相,穷举即可:
1 | for A='X':'Z' for B='X':'Z' for C='X':'Z' |
注意到一条语句便可产生 条输出,说明应以向量的角度思考看待问题。
灵活的输入输出
验证算术平均数 、几何平均数 、调和平均数 、平方平均数 的大小关系为 。代码如下:
1 | [A, G, H, Q] = averages(1, 2, 3, 4, 5, 6, 7, 8); |
这段代码有很多地方可圈可点。首先通过 varargin
、varargout
说明函数 averages
是「变长度」输入输出函数,也就是说如果调用该函数的时候可以针对不同的输入、输出表现出不同的结果,如代码中的判断语句,针对 nargout
实现了分别赋值给四个输出参数、输出表格的不同表现形式;在初始化参数时运用 deal
实现了「多重赋值」;在处理每个 varargin(k)
时将其视为数组,并进行必要的判断。