运行matlab并从命令行传递整数参数

时间:2011-10-31 18:58:37

标签: matlab

我有一个matlab函数,我可以从命令行运行它。现在我想从命令行向文件传递一个参数。参数是整数。当我从命令行传递时,它总是被视为“char”。

以下是我运行命令的方法

matlab -nodesktop -nosplash -r“mycommand 3”

例如,如果我有一个函数

function [ ] = mycommand( a )
a = a+3;
disp(a)
end

它打印54而不是6.

有办法解决这个问题吗?我不想在我的代码中检查变量的类型。

由于

2 个答案:

答案 0 :(得分:5)

您需要像在matlab解释器中一样执行该功能:

matlab -nodesktop -nosplash -r "mycommand(3)"

(注意3周围的括号

答案 1 :(得分:1)

MarkD给出了一个很好的答案。虽然你提到你可能不满意这样做(我确信有充分的理由),另一个选择是在你的函数的开头添加一些额外的代码,如果命令是通过函数调用的话,它会将字符输入转换为数字matlab -r

if ischar(a)
    a = str2num(a);
end