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

来源:互联网 发布:python 字符串相等 编辑:程序博客网 时间:2024/05/19 11:51

由于实验室的项目要用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 符号函数


 

原创粉丝点击