删除matlab版本检查代码

时间:2017-04-18 13:39:14

标签: matlab octave

我最近从matlab网站下载了一些代码,用octave运行它。当我尝试运行我创建的test.m文件时,该文件从我收到的下载源代码文件中调用了几个函数:

  

八度:2 - ;测试

     

错误:`verLessThan'第101栏第8行未定义

     

错误:来自:

     

错误:/media/34GB/escola/efficientLBP/assignUserInputs.m第101行第5行

     

错误:/media/34GB/escola/efficientLBP/efficientLBP.m第113行,第1列

     

错误:/media/34GB/escola/efficientLBP/test.m第5行第7行

检查源文件我找到了这段代码

    if isempty(funcParamsNames)
       isNoFuncParamsNames=true;
    else
       if verLessThan('matlab', '7.14') % again, old version do not support 'stable'. 
          funcParamsNames=unique(funcParamsNames); % This can lead to bugs :(
       else
          funcParamsNames=unique(funcParamsNames , 'stable');
       end%
       isNoFuncParamsNames=false;
    end

所以我想知道是否有办法让八度音程来识别这个功能。 谢谢你的时间。

2 个答案:

答案 0 :(得分:0)

Octave似乎知道一个等效函数unique,但是,我看不到像Matlabs private PersistentEnum findEnum(String type, String name) { Class<?> c = null; try { c = Class.forName("enums." + type); //Assuming all PersistentEnum's are in "enums" package if (PersistentEnum.class.isAssignableFrom(c)) { Method method = c.getMethod("name"); for (Object object : c.getEnumConstants()) { Object enumName = method.invoke(object); if (name.equals(enumName)) return (PersistentEnum) object; } } } catch (Exception e) { e.printStackTrace(); } return null; } 这样的选项。

尝试独一无二,看看我猜到了什么?

'stable'

答案 1 :(得分:0)

您可以自己unique 'stable'

x = rand(1,10);x(5) = x(1);
% if you have 'stable'
y1 = unique(x,'stable');
% if you don't have 'stable'
[y2,ia] = unique(x);
[ia,idxs] = sort(ia);
y2 = y2(idxs);
% compare
isequal(y1,y2)