使用sprintf连接字符串



我想知道为什么下面的代码不起作用?

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]),那么它将起作用。因此,您可能需要使用输入验证来确保您只输入字符串。

最新更新