地板要舍入非整数的函数代码

8视图(30天)
你好,
我需要你的帮助。明白我的时候我用编辑视图中所涉及到的步骤 地板上 函数。这是一个内置函数但我仍然希望看到这层楼的数学函数是基于通过matlab代码。你能帮助吗? 如。 ,如果地板(2.3)= 2。我想看到一个数学表达式,抓住2和/或丢弃0.3输出2。
%楼负无穷。
%地板(X)轮的元素X到最近的整数
%对负无穷。
%
%也看到,装天花板,修复。
% 1984 - 2005版权MathWorks公司。
%内置函数。

接受的答案

约翰D 'Errico
约翰D 'Errico 2021年7月8日
编辑:约翰D 'Errico 2021年7月8日
如果你想要一个数学表达式,用MATLAB编写(它不会被写在实际代码)这可能工作:
myfloor = @ (x)双(int64 (x));
myfloor (2.3)
ans = 2
后将浮点数转换为整数,然后它需要作为一个双返回。但是,代码会更好写返回一个数字相同的浮点类,因为这将为单精度输入失败。,对于已经一个整数类的输入,它不应该将结果转换成双。最后,对负数代码将会失败,因为地板(-2.3)3。
地板(-2.3)
ans = 3
myfloor (-2.3)
ans = 2
负数圆楼。一个简单的函数,它将有效地工作的任何迹象是:
mybetterfloor = @ (x) x - mod (x, 1);
地板([-2.3 - 2.3])
ans = 1×2
3 - 2
mybetterfloor ([-2.3, 2.3])
ans = 1×2
3 - 2
如您所见,这段代码轮为负数,地板上一样。
x = randn (10000);
(地板(x) = = mybetterfloor (x))
ans =逻辑
1
没有显式类型转换到另一个类的代码,所以它应该为任何浮点或整数类工作。是如何实现在编译C ?当然不是。
2的评论
Gobert
Gobert 2021年7月8日
谢谢, @John D 'Errico & @Stephen Cobeldick 。我的问题,我现在知道了,关键是 国防部操作 如下所示 我相信,每一个函数在任何语言实现遵循数学表达式吗?

登录置评。

更多的答案(2)

马特·J
马特·J 2021年7月8日
编辑:马特·J 2021年7月8日
如果地板(2.3)= 2。我想看到一个数学表达式,抓住2和/或丢弃0.3输出2。
没有地板上函数的基本公式。在C / c++完成仅仅通过铸造的输入一个整数类型。一个手工方法来实现它,
myfloor (2.3)
ans = 2
函数y = myfloor (x)
y = str2double (extractBefore (string (x)“。”));
结束

Kapil古普塔
Kapil古普塔 2021年7月8日
我猜你想知道一些细节关于地板的功能。下面的MATLAB文件包含了一些细节,你可以看看这个:
1评论
Gobert
Gobert 2021年7月8日
@Kapil古普塔 ,但不幸的是这不是我想要的。我想这里有一个例子:例如,如果地板(2.3)= 2。我想看到一个数学表达式,抓住2和0.3丢弃输出2。

登录置评。

类别

找到更多的在数学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!