String 在matlab中实现可执行函数

String 在matlab中实现可执行函数,string,matlab,function,system,String,Matlab,Function,System,一整天都很好 我是新来的matlab,我不熟悉大多数的matlab函数的家伙,希望能从你那里得到一些提示 问题是我想要执行一个系统函数。更准确地说,我要求用户输入一个字符串,我希望将该字符串传递给执行该字符串的函数,并将输出返回给我 比如说 input: dog 把狗递给!wn 该函数应采用此形式!wn狗“参数”。可执行函数。我想执行此函数,但不返回!wn狗“参数”。在matlabe命令中,如果我使用系统函数,然后使用此函数,它将起作用 >> !wn dog param 上面的命

一整天都很好

我是新来的matlab,我不熟悉大多数的matlab函数的家伙,希望能从你那里得到一些提示

问题是我想要执行一个系统函数。更准确地说,我要求用户输入一个字符串,我希望将该字符串传递给执行该字符串的函数,并将输出返回给我

比如说

input: dog
把狗递给
!wn

该函数应采用此形式
!wn狗“参数”
。可执行函数。我想执行此函数,但不返回
!wn狗“参数”
。在matlabe命令中,如果我使用系统函数,然后使用此函数,它将起作用

>> !wn dog param
上面的命令是在命令环境中工作的,但是如果我想从用户那里得到一个输入,并将输入输入到该函数中并执行它,那么我希望输出是这样的。只是想知道如何从mat文件中执行它

我试着这么做

 keyword= 'dog'; % 

  x = system('wn'); % this to execute the system function

  output= strcat('!wn',  keyword)
非常感谢你友好的回答

谢谢

我不确定调用系统函数的形式是否适用于您的情况。它似乎主要设计为。但是,您可以使用如下功能:

[~,result] = system(['wn ' input ' ' params]);
或者,您可以对其进行一点概括,并将其转换为函数:

function result=call_wn(input,varargin)
[status,result] = system(['wn ' input sprintf(' %s',varargin{:})]);

这允许使用数量可变的参数,其中不包括任何参数<需要代码>输入。我猜您是在Windows上(我不知道“wn”命令是什么),所以也请查看。

x=system('wn')
,输出的
x
不是
wn
返回的结果。请看帮助。第一个输出是返回状态,可用于确定函数是否生成错误或是否成功完成。您需要获取第二个参数才能查看输出-查看我的答案。您尝试的另一个方法无效,因为它只创建了一个字符串。您可以将其转换为有效的方式,但这是一种糟糕的编程风格,效率低下-不要这样做:
result=evalc(['!wn'keyword])
。还要注意,我只是使用了简单的方括号(
[
]
)而不是
strcat
来连接字符串。仅供参考,您可能不想在任何实际实现中避免使用名为
input
的变量,因为这也是a的名称-它在您的情况下甚至可能很有用,并且可以很容易地与上述代码结合。非常感谢horchler。。你真是个专家。。我想知道你也许我们可以交换电子邮件或facebook。。我在用matlab