【发布时间】:2012-03-26 22:18:14
【问题描述】:
我正在编写一个带有两个参数的函数,我希望将第二个参数作为字符串处理。以下代码遇到错误
函数 Derivative = 派生(Matrix9x1,字符串变量) 结束
如何告诉 matlab? 我的意思是即使用户输入 1 作为第二个参数,它也应该作为字符串处理 并且用户应该能够输入例如 omega
【问题讨论】:
标签: matlab
我正在编写一个带有两个参数的函数,我希望将第二个参数作为字符串处理。以下代码遇到错误
函数 Derivative = 派生(Matrix9x1,字符串变量) 结束
如何告诉 matlab? 我的意思是即使用户输入 1 作为第二个参数,它也应该作为字符串处理 并且用户应该能够输入例如 omega
【问题讨论】:
标签: matlab
函数的第二个参数只有在“is是一个字符串”时才会被“作为字符串”处理,也就是说,如果你用单引号将它括起来。如果要将数字传递给函数并将其转换为字符串以进行进一步操作,请使用函数num2str。如果您想编写一个根据第二个参数的类型采取不同操作的函数,则必须在调用该函数时测试该类型;您可能想查看函数ischar、isstrprop、isnumeric 及其关系。
哦,别忘了,Matlab 的“字符串”实际上是一个字符数组,它只是整数表示字符的一种方便“类型”。
【讨论】:
num2str而不是str2num?
Matlab 函数不同于编程语言函数。并不是说您在这些编程语言中的示例也不起作用。将整数传递给需要字符串的函数会导致编译错误。
我能想到的 Matlab 中最好的替代方法是检查或转换函数内的第二个输入变量。也许这可以帮助你:http://www.mathworks.nl/help/techdoc/ref/typecast.html
【讨论】: