如何转换一个矩阵的双int?

2.978次观看次数(过去30天)
艾米莉Mussard
艾米莉Mussard 2013年12月5日
评论道: 阮莳芳2019年9月11日
我需要将我的矩阵[648x2400 double]转换为整数值以使用mRMR函数,但我不知道如何做到这一点。我尝试过用uint8(矩阵)或int8(矩阵)转换,但它不给整数…我总是有这个注意:“未定义的函数'mrmr_mid_d'输入参数类型'int8'”(或双,或uint,等等)有人能帮助我吗?谢谢你!
1评论
阮莳芳
阮莳芳 2019年9月11日
Img_d = double(img);
imshow (img_d / 255);

登录评论。

接受的答案

韦恩王
韦恩王 2013年12月5日
编辑:韦恩王 2013年12月5日
我不知道你在说什么。你的意思是:
X = 10+randn(16,16);
X = uint8(X);
在X中的输出不产生整数吗?
您报告的错误消息(“未定义函数'mrmr_mid_d'用于类型为'int8'的输入参数”)听起来就像MATLAB无法识别函数mrmr_mid_d.m。
您需要将包含该函数的文件夹添加到MATLAB路径中。你可以启动
> > pathtool
添加该文件夹。
1评论
艾米莉Mussard
艾米莉Mussard 2013年12月5日
谢谢你,我没有想到路径问题,我关注了一个错误的问题!

登录评论。

更多答案(3)

凯利卡尼
凯利卡尼 2013年12月5日
有可能mrmr_mid_d。M不在你的路径上;另一种可能性是,它实际上不接受整型数据类型作为输入,而是接受存储为双精度数组的整型值。在这种情况下,需要以某种方式对数据进行四舍五入(参见四舍五入、天花板、地板、固定等)。
X =兰特(10)*10;
X = round(X);
mrmr_mid_d (x);%或者其他语法…

MathWorks支金宝app援小组
MathWorks支金宝app援小组 2018年11月27日
要将“double”类型的数组转换为整数类型,可以使用诸如“int64”之类的函数,它将输入转换为64位整数。例如,考虑以下问题:
X_double = [1 2 3];
X_int = int64(x)
有关整型和函数的详细信息,请参见 //www.tatmou.com/help/matlab/matlab_prog/integers.html

sixwwwwww
sixwwwwww 2013年12月5日
你可以这样做:
A = randi(100,4);
A = int64(A);
有关整型数据类型的更多信息,请参阅以下链接:
2的评论
Munawara Munia
Munawara Munia 2016年4月26日
你好,艾米丽,我也面临着同样的问题。我也试图使用mRMR和得到相同的错误。你能告诉我你的代码有什么问题,你是如何解决的吗??急需一个解决方案。提前谢谢你。:)

登录评论。

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的