我想知道为什么下面的代码不起作用?
function out = test(str1, str2)
aux = sprintf(str1, str2);
end
不知怎的,MATLAB不喜欢我如何将用户输入的参数str1
提供给函数sprintf
。
在MATLAB中阅读关于sprintf
的文档。错误的地方很明显:你的第一个论点。MATLAB的sprintf
需要一个格式规范,所以除非第一个参数是格式规范,而不是说'hello'
与第二个字符串匹配,否则这是行不通的。您可能想要类似sprintf('%s %s', str1, str2)
或sprintf([str1 ' ' str2])
的内容,即先将字符串显式连接为一个文本字符串。
如果您将当前函数称为test('%s', 'hello')
,甚至test('%f %f', [pi 5])
,那么它将起作用。因此,您可能需要使用输入验证来确保您只输入字符串。