如何找出一个数字甚至是什么

3434次浏览(过去30天)
迪夫r
迪夫r 2012年10月23日
编辑: 马特·J 于10月9日20日
我以C语言知道,对于使用x%的任何数字x将计算x当x除以2时的剩余部分,这将有助于破译是否是它的。
在matlab中怎么做呢?
3评论
史蒂文的主
史蒂文的主 于10月9日20日
所以 inf 即使是吗?
>> S =(-1)^ INF
S =
1
如何
>> s =(-1)^ nan
S =
这对复数也成立吗?
>> N = 3+4i;
>> s =(-1)^ n;%不等于-1

登录评论。

接受答案

沃尔特罗伯森
沃尔特罗伯森 2012年10月23日
编辑:Mathworks支金宝app持团队 2018年11月9日
看到 摩擦 快速眼动
1评论
Dillen。一个
Dillen。一个 于2020年2月5日
一个快速的例子:
A = [-2 -1 0 1 2 3 4 5 6];% A是你的值或矩阵
is_even =〜mod(a,2)
哪个和
is_even =〜bitget(abs(a),1)
和一样
is_even =〜rem(a,2)
您可以使用 逻辑() 而不是 (isnot)用于ODD,如果你想要布尔值。也 Bitget() 不适用于负整数,因此 ABS()
一个警告;只有 Bitget() 如果A中的元素不是整数,则会抛出错误!其他人将输出“奇数”分数。
除非你重复很多次,否则速度是无关紧要的。否则,您应该向量化。

登录评论。

更多答案(7)

1月
1月 2012年10月23日
照顾例外:
NaN, Inf, 1e54, int8(-128)
这项任务有一些FEX提交,例如fex提交。 FEX:奇偶校验检查

马特·J
马特·J 2012年10月23日
如果Bitget(a,1)%奇怪的
别的%甚至
结束
2的评论
乔什·迈耶
乔什·迈耶 2018年10月10日
在MATLAB的最新版本中, bitmax 被替换为 Flintmax. .这是最大的连续浮点数。后 Flintmax. 的价值 EPS. 大于1(慢慢增加2),所以代表数量大于 Flintmax. 不再是连续的。
所以,所有这些数字的原因甚至是因为 Flintmax. 是偶数,数字之间的间距是 EPS(Flintmax)= 2

登录评论。


路易斯·丰
路易斯·丰 于10月9日20日
伙计们,这是最简单的方法,就是高中的数学
n = 1;您想要知道偶数或奇数的%号码
创建一个表达式
s = (1) ^ N;
如果s = -1, N是奇数,否则N是偶数
如果s == -1
DISP('n是奇数'
别的
DISP(' N是偶数
结束

伊本e亚当
伊本e亚当 于2020年2月18日
找到偶数/奇数的%函数
% n是这个函数的输入数字
功能输出= even_or_odd (n)
如果快速眼动(n, 2) = = 0
产出=偶数;
别的
输出=奇怪;
结束
结束
4评论
马特·J
马特·J 2020年2月26日
不是用引号
我猜引号=单引号

登录评论。


Anmol Singh.
Anmol辛格 2020年4月10日
编辑:Anmol辛格 2020年4月10日
对于我们使用和操作员来说,endennumber甚至或奇怪。
如果任何数字是奇数,它必须具有最正确的位1。
例子:
int i = 5;
二进制形式i = 0101
现在使用和运营商
int j =我;[0101 & 1]/ /
这里j有0001;
1评论
沃尔特罗伯森
沃尔特罗伯森 2020年4月10日
这在Matlab不起作用。在Matlab,操作
C = A&B
相当于
如果~ = 0
如果B ~ = 0
c = true;
别的
c = false;
结束
elseifB ~ = 0
c = false;
别的
c = false;
结束
是的,这可以更有效,但这模特和运营商。更高效的操作是&&
注意,这不是按位运算。5&1不是二进制0101 & 0001给出0001:而是(5~=0)and (1 ~=0)
Matlab等同于您正在讨论的是Bitand()运算符
Bitand(5,1)
但如果你要这样做,你也可以直接要求最后一位:
bitget(5、1)%the 1是位号,LSB是#1

登录评论。


马特·J
马特·J 于10月9日20日
编辑:马特·J 于10月9日20日
再一种在标量中测试偶数的方法, 年代
isEven = false;
尝试,validattreattributes(s,“数字”“甚至”);isEven = true;结束

标签

社区宝藏狩猎

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!