MATLAB Answers

0

How to pass Matlab workspace variable into system command?

Asked by Saurabh Srivastava on 18 Jan 2014
Latest activity Answered by cui
on 2 Jan 2019
Accepted Answer by Jan
I am using a program (wgrib) which is used to read .grb file and it runs in linux environment. This program required filename to read it. Now I want to use this programm using 'system' command in matlab. It works fine when I give the name of file but fails to execute when I give the variable which contains several file name. For ex. it works fine when I use
[u v]=system('wgrib xyz.grb') where wgrib is programm and xyz.grb is file name
But when I give it like
[u v]=system('wgrib filename')
where filename is a matlab variable which contains file name (i.e. xyz,grb), it does not execute and says didn't find file.
Can anyone suggest how to pass matlab variable in system command.

  0 Comments

Sign in to comment.

3 Answers

Answer by Jan
on 18 Jan 2014
 Accepted Answer

[u v] = system(['wgrib ', filename])

  1 Comment

Dear Jan, Thanks for suggestion but I have already tried it and It did not work. :(

Sign in to comment.


Answer by Walter Roberson
on 20 Jan 2014

filename = 'xyz.grb';
[u v]=system( sprintf('wgrib %s', filename) )

  1 Comment

Sign in to comment.


Answer by cui
on 2 Jan 2019

filename = 'xyz.grb';
command = ['wgrib ',filename];
[u v] = system(command)

  0 Comments

Sign in to comment.