把字符串变元赋给函数
优质
小牛编辑
138浏览
2023-12-01
可以编写认可字符串变元的MATLAB函数,而无须用括号或引号。也就是说,MATLAB把
foo a b c
理解为
foo('a','b','c')
然而,当用非引用形式时,MATLAB不能返回变元。例如,
legend apples oranges
在一幅图创立一个图例并用字符串apples
和oranges
作为标签。若想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)。