MATLAB std::exceptionエラー

このQ&Aのポイント
  • MATLABプログラムが動作停止し、Caught "std::exception"エラーが発生
  • ファイルが開けずエラーが発生している可能性がある
  • 同じエラーに過去にも苦労した経験がある
回答を見る
  • ベストアンサー

MATLAB std::exceptionエラー

24時間ずっと動きっぱなしにしているMATLABプログラムがあります。 1年以上順調に動いていたのですが、 本日、下記のメッセージが出て停止しました。 Caught "std::exception" Exception message is: Message Catalog MATLAB:builtins was not loaded from the file. Please check file location, format or contents このメッセージが出たのちは、 どのようなコマンドを打っても上記のメッセージが出て受け付けてくれません。(close 、clearはもとより quit や exit もできません。) その後に下記のコマンドをうつと、 current_data_dummy=dlmread('data.csv'); 下記のメッセージが出ます。 エラー dlmread (line 62) ファイル 'data.csv' は Too many open files の理由により開けません ちなみに、新たにMATLABを立ち上げたのちに current_data_dummy=dlmread('data.csv'); とコマンドすると問題なく開けます。   どのような問題が考えられるでしょうか? そういえば、 これと同じエラーで苦労したことが、過去に1回ありました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ここはひどいインタネットですね! エラーメッセージに出ている通りの問題です。 それ以外の何ものでもありません。 正規ユーザならサポートに聞けば一発です。 ↓ fclose('all') を追加する。 エラーメッセージにファイルハンドルに関する言及を追加してほしい。。。

cheepyon
質問者

お礼

ご回答ありがとうございます。 たしかに、サポートに聞けば一発でした m--m ちなみに、サポートの回答は下記のとおりです。 エラーメッセージ、 Caught "std::exception" Exception message is: Message Catalog MATLAB:services was not loaded from the file. Please check file location, format or contents は、fopen コマンドを使用して、500 ファイル程のファイルをオープンした際に生じます。 回避策としましては、同時に多くのファイルがオープンしないよう、 fclose コマンドを使用してクローズします。 'all' オプションを使用して、 fclose('all') と実行しますと、すべてのファイルが閉じます。 あるいは、ファイルを fopen にてオープンした後、個々に fclose にてクローズする等により、 多くのファイルがオープンした状態にならないようにします。

その他の回答 (1)

  • sata-nn
  • ベストアンサー率59% (920/1545)
回答No.1

こんにちわ データの読み込みがうまくいっていないのかもしれません。 一度下記の事をするとよいかと思います。 手順1:システム復元 ・PC システム復元と検索し、数か月前まで戻します。 手順2:修復作業 ・PC チェックディスクと検索し、チェックディスクを行います。 手順3:ドライバー全体更新 Driver Booster Free - 窓の杜ライブラリと検索し、Driver Booster Freeを使い、ドライバー全体を更新します。 終わりましたら、DirectX エンド ユーザー ランタイム Web インストーラによるDirectxの更新をします。 http://www.microsoft.com/ja-jp/download/details.aspx?id=35

cheepyon
質問者

お礼

ありがとうございます。 検討してみます。

関連するQ&A

  • MATLAB matファイル(名前にピリオドを含む)load時のエラー

    MATLAB初心者です。 下記のような名前でデータを保存(mat形式)してしまいました。   例)file0.2.mat ファイル名に"."を含むため、 下記のようにloadコマンドを入力しても、 エラーが出てデータを読み込むことができません。   load file0.2 何かいい手はありませんか? 何卒よろしくお願いします。

  • Visual C++からMATLABを呼び出したい

    工学系の大学生の者です. 現在,Visual C++で作成したMFCアプリを使って実験機を制御し,その結果にあたるセンサの値を取得してcsvファイルを生成し,それをMATLAB(csvファイルをグラフ化するmファイルを呼び出し)でグラフ化しています. ただ,この手法だとアプリの実行でcsvファイルを生成したのち,MATLAB上でコマンドを打つ必要があり,少し手間がかかります. 私の理想としては,センサ測定値をcsvファイルに書き出したのち,自動でMATLABグラフ化したいと思っております. C#だとMATLABと連携がしやすいとか聞くのですが,VIsua C++ではMATLAB連携や上記のような自動化はできないのでしょうか? できる場合は,やり方や参考資料などを挙げていただけると幸いです. (たとえば,ライブラリやヘッダー,C++ソース側の記述など) ご回答,よろしくお願い致します.

  • matlabのエラー

    座標データが書き込まれたテキストファイルからデータをmatlabで読み込みたいのですが,作成したスクリプトでエラーが出ます.テキストファイルの形式はx,y,z座標がスペース区切りで1行ごとに書き込まれてます.以下作成したスクリプトです. path='coordinate.txt'; fid=fopen(path,'rt'); while feof(fid)==0 Line=fgets(fid); zahyou=sscanf(Line,'%f%f%f'); x(i)=zahyou(1); y(i)=zahyou(2); z(i)=zahyou(3); end fclose(fid); これを実行すると次のエラーメッセージが出ます. Attempted to access (1); index out of bounds because numel(zahyou)=0. エラーが出てるのはx(i)=zahyou(1)で,何がいけないのかさっぱりわかりません. さらにわからないことに,whileをなくして,一番最初の一行だけ読むときは,普通に動きます. 何がいけないのでしょうか.

  • matlabでの文字列の比較

    Matlabの初心者です。 CSVファイルを読み込んで、その中から特定の文字列がどこにあるかを探したいと思っています。 最初にすべてのデータを読み込んで all= textscan(fid, '%s', 'delimiter', '\n'); idata=all{1,1}; x=find(cellfun('isempty',idata)); idata(x)=[]; data_s=whos('idata'); adata=cell(data_s.size(1),10); for n=1:data_s.size; dummy=strtrim(textscan(idata{n},'%q %q %q %q %q %q %q %q %q %q','delimiter',',')); % dummy=regexp(idata{n},',','split'); for i=1:10; adata{n,i}=dummy{i} ; end gg=strcmp(dummy,'《ファイル情報》') end と行ってみましたが、変数で見ると文字列「《ファイル情報》」がありますが、比較では0となり検出できません。 変数表示のところで、同じ所にコピー、貼り付けを行うと検出するようになります。 何か、表示では見えない文字が入っているのかもしれませんが、どのように調べれば良いのかわかりません。よろしくご教授ください。

  • MATLABのCSV形式での書き込みについて

    MATLABにて計算させた結果をCSV形式で出力したいのですが, もともとCSVファイルに書き込んであるデータを消さずに, 追加書き込みとして,行と列を指定して書き込み出来るのでしょうか? もしできるのであれば, どのようなプログラムを組めばよいのでしょうか? どなたかご教授お願いします.

  • MATLABのCSV形式での書き込みについて

    MATLABにて計算させた結果をCSV形式で出力したいのですが, もともとCSVファイルに書き込んであるデータを消さずに, 追加書き込みとして,行と列を指定して書き込み出来るのでしょうか? もしできるのであれば, どのようなプログラムを組めばよいのでしょうか? どなたかご教授お願いします.

  • MATLAB error (mat2gray)

     私のパソコン(WindowsXP)には、MATLAB(Ver5.2)が入っています。しかし、今までMATLABを使ったことはほとんどなく、これから勉強していくつもりでいます。    あるインターネットサイトからあるバイナリデータをタウンロードしMATLABで読み込もうとしています。そのサイトには、読み込むためのサンプルプログラム(mファイル)も紹介されています。しかし、そのサンプルプロクラムで読もうとすると、  "Undefined function or variable 'mat2gray'." というエラー出ます。おそらくmat2grayという関数か変数が必要であるということだと思いますが、私はどうすればいいか全く分かりません。教えてください。

  • MATLABの2つのプログラム間でデータのやりとり

    MATLABで同時に2つのプログラムを動かし、プログラム間でデータのやりとりをしたいです。 例えば、片方でsave data.mat、もう片方でload data.matとすると、 data.mat書き込み中にアクセスすることがあるため、 以下の(1)~(3)のようなエラーメッセージが出ます。 (1)エラー load MAT ファイル data.mat を読み込むことができません。 ファイルが壊れている可能性があります。 (2)エラー load ASCII ファイル data.mat の 2行目の列数は、前の行と同じでなければなりません。 (3)エラー load MAT ファイル data.mat を読み込めません:2 進数の MAT ファイルではありません。 テキストとして読み込むために LOAD -ASCII を試してください。 なにか、うまい方法は無いでしょうか? ちなみに、プログラムはMATLAB Compilerを利用し、いずれも24時間動きっぱなしにすることを想定しています。

  • 【再】MATLABのcsvreadについて

    前回質問させて頂いたのですが、意味が分からないとの指摘を 頂きましたので、再度質問させていただきます。 何度も申し訳ないですが、ご存知の方がいらっしゃいましたら教えて下さい。 私がやりたいのは、CSV形式のファイル名を入力すると MATLABさんが入力されたファイル名を読み取って グラフを表示するといったことがしたいのです。 (フォルダ内にたくさんあるCSVファイルから、好きなのを選びたい) そのため、私はcsvreadの引数であるファイル名を変数として みましたが、文字列じゃないとダメだと怒られます。 下記に私の書いたものをそのまま載せますので、ダメな点を指摘していただければと思います。 <<Mファイル>> Prompt = {'対象文字','Figure Number '}; Title = 'Dialog'; Def={'A','1'}; set_Dialog = inputdlg(Prompt,Title,1,Def); filename1 = strcat(set_Dialog(1,1),'_1.csv'); filename2 = strcat(set_Dialog(1,1),'_2.csv'); fig_num = set_Dialog(2,1); ↓ここからわかりません。↓ >>xy = csvread(filename); ??? エラー ==> csvread の 32 行目ファイル名は文字列でなければなりません。 >>xy = csvread('filename2'); ??? エラー ==> csvread の 38 行目ファイルが見つかりません

  • MATLABのFigureプロパティの変更について

    MATLABでsaveasによって一度保存したFigファイルを再びMATLAB上で読み込んだ後、 そのFigureのFigureプロパティをコマンドラインで変更する方法について教えて頂きたいです。 具体的には、Figureのサイズとマーカーのサイズを変更したいのですが、 set関数で'Position'や'Makersize'を用いても変化しません。 ちなみに、エラーも出ません。 参考になるサイトでもいいので、教えて下さい。 お願いします。

専門家に質問してみよう