私はシミュレーションを実行するために外部ソルバーを使用しています。 MATLABスクリプトからシステム(cmd)を使って外部ソルバーを呼び出そうとしています。 cmd自体は問題なくターミナルから問題なく実行されます(私はOSX上で動作しています)。ただし、MATLABスクリプトが実行されるたびに、状態は139 - Segmentation Faultです。なぜこれが起こっているのか誰にも分かりますか?MATLABシステムコマンドでセグメンテーションフォルトが発生しますか?
1
A
答えて
1
これはあなたがおそらく環境変数は、プログラムへのアクセス方法に影響しようとしている(~/.bashrc
または~/.bash_profile
経由)端末セッション内で定義されているので、ターミナルからプログラムを実行するのと同じではないあるsystem
コマンドを実行実行します。
プログラムを正常に実行するために必要な環境変数がある場合は、system
を呼び出す前に、MATLAB内のsetenv
を使用してください。
0
私はMatlab(R2016b)と同じ問題を抱えていましたが、解決策はまったく逆でした。
変数が不足しているのではなく、system()
がLD_LIBRARY_PATH
と定義されていて、プログラムでうまく座っていないMatlabパッケージの共有ライブラリにリダイレクトされました。スクリプト内でLD_LIBRARY_PATH
をクリアした後、すべて正常に機能しました。たとえば、次のようにすることができます。
env -u LD_LIBRARY_PATH
関連する問題
- 1. なぜ「セグメンテーションフォルト」が発生しますか?
- 2. Matlabのシステムコマンドが機能しません
- 3. なぜこれでセグメンテーションフォルトが発生しますか?
- 4. なぜセグメンテーションフォルト:11がCコードで発生しましたか?
- 5. なぜscanfループからセグメンテーションフォルトが発生しますか?
- 6. なぜこのセグメンテーションフォルトが発生しますか?
- 7. 機能エントリの前にセグメンテーションフォルトが発生しましたか?
- 8. Linux(Mac OS)ではセグメンテーションフォルトが発生しています(g ++)。
- 9. "アクセス違反(セグメンテーションフォルト)がプログラムで発生しました。"
- 10. LinuxでC-セグメンテーションフォルト(コアダンプ)エラーが発生しました
- 11. std :: flushがない場合にセグメンテーションフォルトが発生します
- 12. ここでセグメンテーションフォルトが発生するのはなぜですか?
- 13. なぜこのアセンブルコードはセグメンテーションフォルトが発生するのですか?
- 14. ポインタにセグメンテーションフォルトが発生するのはなぜですか?
- 15. キャッシュのフラッシュ中にセグメンテーションフォルト(コアダンプ)エラーが発生しました
- 16. エラーが発生した場合のシステムコマンドの出力方法
- 17. セグメンテーションフォルトにより、以前の関数が発生しません。
- 18. MATLABでこのプロットエラーが発生しましたか?
- 19. pthread_mutex_trylockとpthread_mutex_unlockが原因でセグメンテーションフォルトが発生する
- 20. mallocの問題が原因でセグメンテーションフォルトが発生する
- 21. PHPコードがセグメンテーションフォルトを生成します
- 22. このCコードスニペットでセグメンテーションフォルトが発生しないのはなぜですか?
- 23. このopenmpコードでセグメンテーションフォルトが発生しているのはなぜですか?
- 24. AVLツリーの子セグメントプロジェクトでセグメンテーションフォルトが発生する
- 25. 正しい関数を呼び出す際にセグメンテーションフォルトが発生しました
- 26. Qtアプリケーションは、GLWidget.show()でセグメンテーションフォルトを発生させます。
- 27. 関数呼び出しでMatlabエラーが発生しました
- 28. 私のコードでセグメンテーションフォルト(コアダンプ)エラーが発生するのはなぜですか?
- 29. なぜstrcpyの実装でセグメンテーションフォルトが発生するのですか?
- 30. Cのこのキューインプリメンテーションでセグメンテーションフォルトが発生するのはなぜですか?
本当に分かりにくいです。 MATLABではなく外部プログラムの問題です。外部プログラムが依存する環境変数がありますか? – Suever
はい、私のホームディレクトリには特定の環境変数があります.bash_profile – jfherrm
これは、MATLABから 'system'コマンドを実行したときに尊重されるものではありません。必要な環境変数を設定するには 'setenv'を使う必要があります – Suever