1

我有一个文件夹,其中包含我多年来开发或收集的几个包和模块。文件夹中组织的文件数量约为 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 路径的文件数量是否有限制?

4

3 回答 3

1

ischar在充满文件的文件夹中查找正在重新定义的内容。也许ischar.m在以“@”开头的文件夹中?或者也许它已经被重新定义了。尝试,

which -all ischar

提示我的是MATLABischar.m. 第 2 行阅读,

y = strcmp(typeof(x), 'string');

ischar.m在MathWorks 的 MATLAB中不存在。

于 2013-09-17T21:37:00.507 回答
0

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

于 2014-08-19T19:49:10.483 回答
0

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

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

从中您可以尝试找出导致问题的字符,并选择是要排除文件还是重命名文件。


也许更有效,但未经尝试:

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

于 2013-09-18T14:16:47.057 回答