Use system to run a program in Matlab
    5 views (last 30 days)
  
       Show older comments
    
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.
0 Comments
Answers (2)
  James Tursa
      
      
 on 9 Jul 2014
        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 Comments
  James Tursa
      
      
 on 10 Jul 2014
				Right. strcat is trimming the blanks. So ditch strcat:
yourCommand=['$e300 ',nameData2];
  Image Analyst
      
      
 on 10 Jul 2014
        
      Edited: Image Analyst
      
      
 on 10 Jul 2014
  
      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);
0 Comments
See Also
Categories
				Find more on Get Started with MATLAB in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

