在Matlab中将双矩阵转换为整数矩阵

时间:2015-05-14 20:45:47

标签: r matlab matrix integer double

我在R中构建了两个二进制矩阵,然后将它们加载到MATLAB中。我想通过使用这个函数来进行特征选择:

[steps,sel_flag,rel,red,cond_red] = select_features(BinaryMat1,BinaryMat2, 'degree', 2);

两个二进制矩阵采用double格式,但我收到了这个错误:

  

未定义的函数select_features   输入double类型的参数。

在Matlab中如何将这两个矩阵转换为整数?我尝试了uint8int32int64,但每次都遇到同样的错误。

1 个答案:

答案 0 :(得分:1)

只需将每个矩阵转换为logical即可。这可以通过在调用函数之前强制转换来完成:

BinaryMat1 = logical(BinaryMat1);
BinaryMat2 = logical(BinaryMat2);
[steps,sel_flag,rel,red,cond_red] = select_features(BinaryMat1,BinaryMat2, 'degree', 2);

次要注意事项

您也可能收到该错误,因为MATLAB 找不到该函数要运行。在运行代码之前,请确保在计算机上具有此功能。您引用的函数不是MATLAB的本机环境的一部分,但通过简单的Google搜索,我发现了这一点:

http://www.mathworks.com/matlabcentral/fileexchange/26981-feature-selection-based-on-interaction-information/content//select_features/select_features.m

在查看源代码时,它看起来并不仅仅是二进制矩阵的输入。看起来它们可以是任何矩阵,只要它们代表整数类型,所以整数,无符号整数也可以工作,但我高度怀疑你没有正确下载工具箱,或者假设这个工具箱是MATLAB的本地库。

可以在此处找到完整的工具箱:http://www.mathworks.com/matlabcentral/fileexchange/submissions/26981/v/1/download/zip

这是由独立于MathWorks的个人编写的自定义工具箱的一部分,因此请确保下载此工具箱,将其放在可访问的位置,然后再次运行代码。

下载工具箱,从存档(.zip)文件中提取内容,然后此目录添加到MATLAB的路径中。您可以通过转到File->Set Path并将此目录添加到MATLAB的路径中,或者在命令提示符下执行此操作:

path(path,genpath('/path/to/toolbox/dir'));