返回介绍

把字符串变元赋给函数

发布于 2019-08-26 14:10:41 字数 1129 浏览 899 评论 0 收藏 0

可以编写认可字符串变元的MATLAB函数,而无须用括号或引号。也就是说,MATLAB把

    foo a b c
    

理解为

    foo('a','b','c')
    

然而,当用非引用形式时,MATLAB不能返回变元。例如,

    legend apples oranges
    

在一幅图创立一个图例并用字符串applesoranges作为标签。若想legend命令返回它的输出变元,则必须用引号。

    [legh,objh] = legend('apples','oranges');
    

此外,若有任何变元不是字符串时,你都不能用非引号形。

用编码建立字符串变元

可以用引号形式在代码中建立字符串变元。以下例子处理多个数据文件August1.dat, August2.dat, 等等。它用函数int2str,该函数把整数变成字符来建立文件名。

    for d = 1:31
       s = ['August' int2str(d) '.dat'];
       load(s) 
       % Code to process the contents of the d-th file
    end
    

一条值得注意的注释

在无引号的句法使用上去颇方便的同时,它也可以在不导致MATLAB产生错误的情况下而被不正确的使用。例如,给出一个矩阵A,

    A =
         0 -6 -1
         6     2 -16
    -5    20   -10
    

eig返回A的特征值。

    eig(A)
    ans =
    -3.0710
    -2.4645+17.6008i
    -2.4645-17.6008i
    

下面的语句是不允许的,因为A不是字符串,然而MATLAB不会产生错误。

    eig A
    ans =
        65
    

MATLAB实际上取出与字母A相等的ASCII码数值的特征值(是65)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文