フィルターのクリア

Use system to run a program in Matlab

1 回表示 (過去 30 日間)
H-H
H-H 2014 年 7 月 9 日
コメント済み: James Tursa 2014 年 7 月 10 日
I have a program named "C:\ecl\macros\$e300" which requires a parameter file named "C:\ecl\macros\data1" (without any extension). $e300 is already available in environmental variables of Windows and can be directly run by $e300.
matlab can call and run this program as system('$e300 Parameter').
However this doesn't work:
name='data';
nameData2=strcat(name,num2str(1));
yourCommand=strcat('$e300',{blanks(1)},nameData2);
system(yourCommand);
The error is : Error using system Argument must contain a string.

回答 (2 件)

James Tursa
James Tursa 2014 年 7 月 9 日
You have inadvertantly used curly braces in the formation of your string, which has turned the entire result into a cell array. Try this instead:
yourCommand=strcat('$e300',blanks(1),nameData2);
  2 件のコメント
H-H
H-H 2014 年 7 月 10 日
No this didn't work- the space is not added to the string. it just creates $e300data1 and an error happens
James Tursa
James Tursa 2014 年 7 月 10 日
Right. strcat is trimming the blanks. So ditch strcat:
yourCommand=['$e300 ',nameData2];

サインインしてコメントする。


Image Analyst
Image Analyst 2014 年 7 月 10 日
編集済み: Image Analyst 2014 年 7 月 10 日
Why can't you just do
system('$e300 C:\ecl\macros\data1');
??? If there are any variables in your command string, then use sprintf(), for example:
myNumber = 1; % Your variable that changes all the time.
commandLine = sprintf('$e300 C:\\ecl\\macros\\data%d', myNumber);
system(commandLine);

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by