Matlab模数特定行为

时间:2015-08-09 09:33:55

标签: matlab

我有以下问题。假设我有四个可能的值{1 2 3 4},我想要一个mod函数的特定行为

我寻求的行为就是这个

 1 mod 4 = 1
 2 mod 4 = 2
 3 mod 4 = 3
 4 mod 4 = 4

但我在matlab中得到以下结果。

 1 mod 4 = 1
 2 mod 4 = 2
 3 mod 4 = 3
 4 mod 4 = 0

有没有想法如何在MATLAB中以最简单的方式实现所需的行为?

2 个答案:

答案 0 :(得分:7)

如果A包含这些值,您可以减1,执行mod并重新添加1。

示例运行 -

>> A = 1:8
A =
     1     2     3     4     5     6     7     8
>> mod(A-1,4)+1
ans =
     1     2     3     4     1     2     3     4

答案 1 :(得分:6)

怎么样:

function [result] = my_mod(x,y)
m = mod(x,y);
result = m+~m*y;

~否定mod的结果,即:

  • ~0 == 1
  • ~1 == 0
  • ~2 == 0
  • ...

因此,如果y的结果为mod,我们只会添加0

<强>演示

>> my_mod(1:8, 4)

ans =

 1     2     3     4     1     2     3     4