2014-10-10 242 views
0

例如,如果您有3pi並使用wrapTo2Pi(3pi)它給出pi。函數爲循環變量

我想要的就是這個,而不是0到2pi,我想從1到12(一年中的月份)。

所以,如果我我有17我想function(17) = 5

是否有這樣的功能?

回答

4

您可以使用mod

如果你想要一個base 1系統(你的第一個值是1)喜歡的月份數,你必須做一個1偏移(內,則函數外),像這樣:

mod(17-1,12)+1 
ans = 
    5 

特別感謝Luis Mendo的修正和對細節的關注。


如果用base 0系統(三角函數,小時等)工作,你不必做偏移,可以簡化爲:

mod(3*pi , 2*pi) 
ans = 
    3.141592653589793 

或在一天時間:

mod(36 , 24) 
ans = 
    12 
+1

其實你需要'MOD(17-1,12)+ 1',否則12被轉換爲0,而不是12 – 2014-10-10 22:28:51

+0

@LuisMendo。是的,你是對的,特別是當月的情況。有時你希望'base'爲0(例如三角或小時),但在這種情況下,你需要一個'base 1'。謝謝你的糾正。 – Hoki 2014-10-10 22:31:11