MATLAB细节笔记
- input函数
input('please input','s') 或者 input('please input').前者不管输入什么都会变成字符串,后者如果输入数字,那么matlab会识别成数字。如
>> a=input('please input ') please input 5 a = 5 >> whos a Name Size Bytes Class Attributes a 1x1 8 double
- eval函数
次函数可以把字符串表达式转化为MATLAB数学运算表达式,如
>> a='c'; >> b=2:4; >> eval([a,'=b']) c = 2 3 4 >>
还可以妙用eval获得匿名函数例如:
>> f=eval(['@(x)','x^2']) f = 包含以下值的 function_handle: @(x)x^2 >> f(2) ans = 4
- vectorize函数
可以把字符串表达式或者符号表达式向量化,即加上(.)运算符,返回的是字符串,所以经常配合eval使用。一个经典例子是使用匿名函数来实现符号表达式的赋值:
>> syms x z >> syms x y z >> z=x^2+y^2 z = x^2 + y^2 >> f=eval(['@(x,y)',vectorize(z)]) f = 包含以下值的 function_handle: @(x,y)x.^2+y.^2 >> f(1,3) ans = 10