我在R中构建了两个二进制矩阵,然后将它们加载到MATLAB中。我想通过使用这个函数来进行特征选择:
[steps,sel_flag,rel,red,cond_red] = select_features(BinaryMat1,BinaryMat2, 'degree', 2);
两个二进制矩阵采用double
格式,但我收到了这个错误:
未定义的函数
select_features
输入double
类型的参数。
在Matlab中如何将这两个矩阵转换为整数?我尝试了uint8
,int32
和int64
,但每次都遇到同样的错误。
答案 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搜索,我发现了这一点:
在查看源代码时,它看起来并不仅仅是二进制矩阵的输入。看起来它们可以是任何矩阵,只要它们代表整数类型,所以整数,无符号整数也可以工作,但我高度怀疑你没有正确下载工具箱,或者假设这个工具箱是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'));