圆形函数的matlab实现
Matlab Implementation of Round Function
我试图在不使用 round 或 roundn 的情况下实现 MatLab 中存在的 round 函数。这只是作为面试的练习。我的思考过程是这样的:我知道我需要使用函数 floor 和 ceil。我想在没有先了解基础知识的情况下不要跳入代码,所以这是我对原型的想法,函数 x = f(z, d),其中 z 是要四舍五入的数字,d 是位数.
这类问题可以而且经常(有时可能过于频繁)通过一些聪明的解决方案来解决。例如,可以通过将边际添加到数字然后使用 floor 来解决此问题。
function y = myround(x, n)
dec = (10^n);
y = floor(x*dec+0.5);
y = y/dec;
因此,如果 n+1
位置的小数位数为 0.5 或更大,floor 将在 n:th 小数位上加一。
编辑
这可以通过第 2 个参数 round
来完成。
round(123.456,2)
ans =
123.4600
我试图在不使用 round 或 roundn 的情况下实现 MatLab 中存在的 round 函数。这只是作为面试的练习。我的思考过程是这样的:我知道我需要使用函数 floor 和 ceil。我想在没有先了解基础知识的情况下不要跳入代码,所以这是我对原型的想法,函数 x = f(z, d),其中 z 是要四舍五入的数字,d 是位数.
这类问题可以而且经常(有时可能过于频繁)通过一些聪明的解决方案来解决。例如,可以通过将边际添加到数字然后使用 floor 来解决此问题。
function y = myround(x, n)
dec = (10^n);
y = floor(x*dec+0.5);
y = y/dec;
因此,如果 n+1
位置的小数位数为 0.5 或更大,floor 将在 n:th 小数位上加一。
编辑
这可以通过第 2 个参数 round
来完成。
round(123.456,2)
ans =
123.4600