2015-05-14 201 views
0

我在R中构建了两个二进制矩阵,然后将它们加载到MATLAB中。我想利用这个功能做特征选择:在Matlab中将双矩阵转换为整数矩阵

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

两个二元矩阵是double格式,但我得到这个错误:

Undefined function select_features for input arguments of type double .

我应该怎么做,以这两个矩阵转换在Matlab中的整数?我已尝试uint8,int32int64,但每次都收到相同的错误。

回答

1

只需将每个矩阵转换为logical。这可以通过调用函数之前铸造他们来完成:

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

小注

你也可能会得到这个错误,因为MATLAB 找不到该函数运行。运行代码之前,请确保您的计算机上具有此功能。你引用的函数是不是MATLAB的原生环境的一部分,但做一个简单的谷歌搜索,我发现这一点:

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的路径中。

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

我想,但我得到这个错误:未定义功能“select_features”的输入参数,您可以通过任一要File->Set Path这个目录添加到MATLAB的路径,或者这样做在命令提示符下执行此键入'char'。 – user36729

+0

@ user36729 - 您确定**下载了**工具箱吗?您是否将工具箱添加到您的MATLAB路径中?现在'char'错误意味着你的电脑上没有这个功能。这与您声明输入矩阵的方式无关。 – rayryeng

+0

@ user36729 - 我已经添加了关于如何将工具箱添加到MATLAB路径的说明。仅仅因为你下载了工具箱**并不意味着MATLAB会知道它在哪里。您必须将其包含在其搜索路径中。 – rayryeng