我有一个matlab函数,我可以从命令行运行它。现在我想从命令行向文件传递一个参数。参数是整数。当我从命令行传递时,它总是被视为“char”。
以下是我运行命令的方法
matlab -nodesktop -nosplash -r“mycommand 3”
例如,如果我有一个函数
function [ ] = mycommand( a )
a = a+3;
disp(a)
end
它打印54而不是6.
有办法解决这个问题吗?我不想在我的代码中检查变量的类型。
由于
答案 0 :(得分:5)
您需要像在matlab解释器中一样执行该功能:
matlab -nodesktop -nosplash -r "mycommand(3)"
(注意3周围的括号
答案 1 :(得分:1)
MarkD给出了一个很好的答案。虽然你提到你可能不满意这样做(我确信有充分的理由),另一个选择是在你的函数的开头添加一些额外的代码,如果命令是通过函数调用的话,它会将字符输入转换为数字matlab -r
:
if ischar(a)
a = str2num(a);
end