我正在尝试使用unix()
Matlab R2013a 中的命令来执行 shell 命令。使用一系列字符串和/或字符串变量将特定命令放在一起,例如unix(['name_of_program --arguments ' string_variables...])
; 并且这个特定的字符串相对较长,但不会太长以至于在终端中输入时会运行。但是,当unix
在 Matlab 中使用该命令时,字符串在某个限制处被截断,我无法弄清楚,并且发出了两个命令,即构成我希望运行的整个命令的子字符串。除了将我的 Matlab 脚本转换为 shell 脚本之外,我想不出另一种解决方法。因此,在此之前,我将不胜感激有关如何在 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
。