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