【问题标题】:arguments of a function in matlabmatlab中函数的参数
【发布时间】:2012-03-26 22:18:14
【问题描述】:

我正在编写一个带有两个参数的函数,我希望将第二个参数作为字符串处理。以下代码遇到错误

函数 Derivative = 派生(Matrix9x1,字符串变量) 结束

如何告诉 matlab? 我的意思是即使用户输入 1 作为第二个参数,它也应该作为字符串处理 并且用户应该能够输入例如 omega

【问题讨论】:

    标签: matlab


    【解决方案1】:

    函数的第二个参数只有在“is是一个字符串”时才会被“作为字符串”处理,也就是说,如果你用单引号将它括起来。如果要将数字传递给函数并将其转换为字符串以进行进一步操作,请使用函数num2str。如果您想编写一个根据第二个参数的类型采取不同操作的函数,则必须在调用该函数时测试该类型;您可能想查看函数ischar、isstrprop、isnumeric 及其关系。

    哦,别忘了,Matlab 的“字符串”实际上是一个字符数组,它只是整数表示字符的一种方便“类型”。

    【讨论】:

    • 你的意思是num2str而不是str2num?
    【解决方案2】:

    Matlab 函数不同于编程语言函数。并不是说您在这些编程语言中的示例也不起作用。将整数传递给需要字符串的函数会导致编译错误。

    我能想到的 Matlab 中最好的替代方法是检查或转换函数内的第二个输入变量。也许这可以帮助你:http://www.mathworks.nl/help/techdoc/ref/typecast.html

    【讨论】:

    • 这个答案的第一段很奇怪。 Matlab 函数是(就像)编程语言函数。如果您在运行时或编译时将整数传递给需要字符串的函数,许多语言都会抱怨。而那些不抱怨的人是在向你隐瞒真相,他们代表你做了必要的类型转换。
    • 我的观点是:在编程中,您明确地让函数要求某种类型的变量。在 MATLAB 中它不是那样的 afaik。
    猜你喜欢
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2014-03-06
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多