R中的Matlab函数uint8
如何在R中的Matlab函数uint8,r,matlab,binary,uint8array,R,Matlab,Binary,Uint8array,如何在R中生成一个uint8对象,该对象具有类似于Matlab中uint8函数的特征?我尝试过github链接,但结果不同。例如: R : b02 <- as.uint8( 2) b0a <- as.uint8( 10) bff <- as.uint8(255) bff + b0a [1] 9 bff/b0a [1] 25 b02 ^ b0a [1] 0 is.numeric(bff) [1] FALSE > class(bff) [1] "uint8" str(
R
中生成一个uint8
对象,该对象具有类似于Matlab
中uint8
函数的特征?我尝试过github链接,但结果不同。例如:
R :
b02 <- as.uint8( 2)
b0a <- as.uint8( 10)
bff <- as.uint8(255)
bff + b0a
[1] 9
bff/b0a
[1] 25
b02 ^ b0a
[1] 0
is.numeric(bff)
[1] FALSE
> class(bff)
[1] "uint8"
str(b02)
'uint8' raw 02
str(b02)
'uint8' raw 02
str(bff)
'uint8' raw ff
Matlab :
b02=uint8( 2)
b02 =
uint8
2
>> b0a =uint8( 10)
b0a =
uint8
10
>> bff =uint8(255)
bff =
uint8
255
bff + b0a
ans =
uint8
255
bff/b0a
ans =
uint8
26
b02 ^ b0a
ans =
uint8
255
isnumeric(bff)
ans =
logical
1
>> strcmp(class(bff),'uint8')
ans =
logical
1
class(b02)
ans =
'uint8'
>> class(b0a)
ans =
'uint8'
>> class(bff)
ans =
'uint8'
R:
b02 b0a=uint8(10)
b0a=
uint8
10
>>bff=uint8(255)
bff=
uint8
255
bff+b0a
ans=
uint8
255
bff/b0a
ans=
uint8
26
b02^b0a
ans=
uint8
255
isnumeric(bff)
ans=
符合逻辑的
1.
>>strcmp(等级(bff),‘uint8’)
ans=
符合逻辑的
1.
类别(b02)
ans=
‘uint8’
>>类别(b0a)
ans=
‘uint8’
>>级别(bff)
ans=
‘uint8’
解决上述问题似乎不太可能帮助您实现最终目标。在R中,最接近uint8的是raw
格式。这可以转换为您选择的任何其他数据类型,因此最好学习如何使用它
为了完整性,值得指出的是,使用R的S3面向对象系统,定义自己的uint8类非常容易。下面是一个极其简化的示例,它可以获取数字或原始数据,并按预期执行简单的算法
uint8解决上述问题似乎不太可能帮助您实现最终目标。在R中,最接近uint8的是raw
格式。这可以转换为您选择的任何其他数据类型,因此最好学习如何使用它
为了完整性,值得指出的是,使用R的S3面向对象系统,定义自己的uint8类非常容易。下面是一个极其简化的示例,它可以获取数字或原始数据,并按预期执行简单的算法
uint8你试过mmap
package吗?@AliHadjihoseini是的,没用!你需要的具体行为是什么。是不是在添加时需要这些数字不溢出?@MrFlick我想要一个与Matlab函数完全相似的函数,因为我试图从数据库中读取序列化数据,我有一个用于淡化数据的Matlab脚本,我希望能够在R中执行此操作。@MrFlick添加并不是分割时唯一的区别,Matlab和R的行为是不同的!你试过mmap
package吗?@AliHadjihoseini是的,没用!你需要的具体行为是什么。是不是在添加时需要这些数字不溢出?@MrFlick我想要一个与Matlab函数完全相似的函数,因为我试图从数据库中读取序列化数据,我有一个用于淡化数据的Matlab脚本,我希望能够在R中执行此操作。@MrFlick添加并不是分割时唯一的区别,Matlab和R的行为是不同的0
是uint8
的有效值,您的第8行不应该是:if(any(x>=256 | x<0))stop(“uint8数字必须包含在0和255之间”)
?Yes@Hoki。我会改变的。老实说,这不是一个任何人都会实际使用的实现(我希望),更多的是一个练习,表明创建uint8是可能的,但在R0中完全多余,对于uint8
,这是一个有效的值,您的第8行不应该是:如果(any(x>=256 | x<0))停止吗(“uint8数字必须包含在0和255之间”)
?是@Hoki。我会更改它。老实说,这不是任何人都会实际使用的实现(我希望),更多的是一个练习,表明创建uint8是可能的,但在R中完全多余