将大型源文件夹添加到Matlab路径会产生错误

时间:2013-09-17 20:45:08

标签: matlab

我有一个文件夹,里面有我多年来开发或收集的几个软件包和模块的集合。文件数量为文件夹中组织的5k订单。当我想将此文件夹添加到Matlab路径时,我收到以下错误:

Error in ischar (line 2)
y = strcmp(typeof(x), 'string');

Error in cell/strcat (line 22)
    if ischar(varargin{i}),

Error in uiopen (line 63)
    allML(1)=strcat(allML(1), ';*.mdl');

我必须关闭Matlab才能继续正常运行。一旦我关闭了Matlab,我就没有在路径中包含的路径中添加的文件夹。如果我重复该过程,则会发生相同的情况。  我正在使用Matlab 2011b版本。任何人都可以解释为什么会发生这种情况并解决什么问题?我可以添加到Matlab路径的文件数量有限制吗?

3 个答案:

答案 0 :(得分:1)

寻找在该文件夹中重新定义ischar的文件。也许是以“@”开头的文件夹中的ischar.m?或许它已经重新定义了。尝试,

which -all ischar

让我感到惊讶的是,MATLAB的ischar.m中有无代码。第2行阅读,

y = strcmp(typeof(x), 'string');
MathWorks'MATLAB的ischar.m中不存在

答案 1 :(得分:0)

我怀疑目录中有一个奇怪的字符,要验证这一点,请导航到它并检查:

d = dir;
unique([d.name])

通过此实验,您可以尝试找出导致问题的字符,并选择是要排除该文件,还是重命名该文件。


也许更有效率,但未经验证:

使用dbstop if error并尝试添加路径。现在,您应该能够导航到uiopen的工作区,并直接找出导致问题的文件。

答案 2 :(得分:0)

这两行代码来自" ischar.m"功能在Fessler图像重建工具箱的freemat / pre-3.5子目录中。使用旧版本的freemat时,该目录应位于路径中。使用matlab或octave时,它不应该在路径中。不要只是将所有文件夹添加到路径中;而是将顶级目录放在路径中,然后运行" setup.m"为自己的情况设置适当的目录,就像自述文件所说的那样!