Matlab R2013a でコマンドを使用unix()
してシェル コマンドを実行しようとしています。特定のコマンドは、一連の文字列および/または文字列変数を使用してまとめられますunix(['name_of_program --arguments ' string_variables...])
。この特定の文字列は比較的長いですが、ターミナルに入力すると実行されるほど長くはありません。ただし、unix
Matlab でコマンドを使用すると、文字列が特定できない制限で切り捨てられ、2 つのコマンド、つまり実行したいコマンド全体を構成するサブ文字列が発行されます。Matlab スクリプトをシェル スクリプトに変換する以外に、別の回避策が見つかりません。その前に、コマンド全体をMatlabで発行する方法についての提案をいただければ幸いです。unix
コマンドを発行する前に、コマンド文字列の作成も試みたことに注意してください。command = strcat (A,B,C)
または両方とも同じ結果で終了しますcommand = [A B C]
。unix(command)
コマンド全体は次のとおりです。
unix(['mne_do_forward_solution --subject ' subjname ...
' --src ' sourcespacenames{k} ...
' --meas ' datafile ...
' --mri ' transname ...
' --megonly -all --fwd ' fwdname ...
' --overwrite --mindistout rej'])
ここmne_do_forward_solution
で、 は C プログラムであり、それに続くもの--
はすべて、値が続くかどうかにかかわらず、入力引数です。入力引数値 、subjname
、sourcespacenames{k}
、datafile
、transname
およびfwdname
は、クラス の Matlab ワークスペース内のすべての変数ですchar
。