我有以下问题。假设我有四个可能的值{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中以最简单的方式实现所需的行为?
答案 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