您的位置:首页 > 编程语言 > MATLAB

matlab中求余、求模运算方法总结

2013-04-27 16:12 1156 查看
由于实验室的项目要用matlab做仿真,开始学习matlab中,虽然刚开始碰到的问题都很基础,但还是mark一下,也算是一个学习笔记吧

首先看一个例子:求所有的三位数,使其各位数字的立方和等于其本身,也称这样的数字为水仙花数!

代码:

for n=100:999

if mod(n,10)^3+fix(mod(n,100)/10)^3+fix(n/100)^3==n

n

end

end

运行及可得结果

n =

153 370 371 407

下面分别介绍:

1,n的百位数字 baiwei=fix(n/100)

这里注意在matlab中假设n=123,则n/100的结果是1.23而不是1,所以这里用fix函数。

fix: 朝零方向取整

2,n的十位数字 shiwei=fix(mod(n,100)/10)

mod: 模数求余。

另外这里注意mod与rem的区别:

通过看他们的帮助文件可以知道,这两个数的符号一致时的结果是一样的,但是当两个数的符号不一样时,就会出现不同了。

>> mod(3,-2)

ans =

-1

>> rem(3,-2)

ans =

1

主要区别在rem(x,y)命令返回的是x - n.*y,如果y不等于0,其中的n = fix(x./y),而MOD(x,y)返回的是x - n.*y,当y不等于0时,n = floor(x./y)

因此他们之间的区别主要在与fix与floor的区别。fix是想最近的整数取整,而floor是向负无穷取整。

最后总结一下:

ceil 朝正无穷大方向取整

fix 朝零方向取整

floor 朝负无穷大方向取整

mod 模数求余

rem 求余数

round 四舍五入取整

sign 符号函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: