如何转换一个矩阵的double到int?

2,896次(过去30天)
艾米莉Mussard
艾米莉Mussard 2013年12月5日
评论道: 阮莳芳2019年9月11日
我需要将矩阵[648x2400双精度]转换成整数,以使用mRMR函数,但我不知道如何做到这一点。我尝试过通过uint8(矩阵)或int8(矩阵)转换,但它不给整数…我总是有这样的注释:“未定义函数'mrmr_mid_d'输入参数的类型'int8'”(或双精度,或uint,等等)谁能帮助我吗?谢谢你!
1评论
阮莳芳
阮莳芳 2019年9月11日
img_d =双(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不在你的道路上;另一种可能是它实际上不接受整型数据类型作为输入,而是接受存储为双数组的整型值。在这种情况下,您需要以某种方式将数据四舍五入(参见round、cell、floor、fix等)
x =兰德(10)* 10;
x =圆(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);
= int64 ();
有关整数数据类型的更多信息,请参见以下链接:
2的评论
Munawara Munia
Munawara Munia 2016年4月26日
嗨,艾米莉,我也面临着同样的问题。我也试图使用mRMR,得到同样的错误。你能告诉我你的代码有什么问题,你是怎么解决的??急需一个解决方案。提前谢谢。:)

登录评论。

标签

社区寻宝

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

开始狩猎!