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

ヒントになるのは、MATLAB の にコードがないischar.mことです。ライン 2 読み取り、

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

ischar.mMathWorks の MATLABには存在しません。

于 2013-09-17T21:37:00.507 に答える
0

これらの 2 行のコードは、Fessler の画像再構成ツールボックスの freemat/pre-3.5 サブディレクトリにある "ischar.m" 関数からのものです。そのディレクトリは、古いバージョンのfreematを使用している場合にのみパスにある必要があります。matlab または octave を使用する場合は、パスに含めないでください。すべてのフォルダーをパスに追加するだけではありません。代わりに、最上位ディレクトリをパスに配置してから、「setup.m」を実行して、readme にあるように、状況に適したディレクトリを設定してください。

于 2014-08-19T19:49:10.483 に答える