matlab中的input、inline、quadl 函数的使用
input
1、选项用于决定用户的输入是作为一个表达式看待,还是作为一个普通的字符串看待。例如:
input(‘请输入一个矩阵:’)
请输入一个矩阵:magic(3)
ans =
8 1 6
3 5 7
4 9 2input(‘请输入一个字符串:’,‘s’)
请输入一个字符串:magic(3)
ans =
magic(3)
两种情况下,用户输入的同样是magic(3)这样一个字符串,但在前一种条件下,magic(3)被理解成一个表达式,所以返回一个3阶的幻方矩阵,而后一种情况下,则直接返回这个字符串。
2、没错,第二个例子中的那个”s“就是选项。input函数如果有第二个参数,则第二个参数只能是’s’,而不能是其它任何内容。
inline内联函数
例如f=inline(‘x.2+y.2’),这样就构造了函数f(x,y)=x.2+y.2,然后输入f(2,3)就能得到f(2,3)=13
close all; clear all; clc;
f=inline(‘x^2+2*x+1’)
g=inline(‘x2+y2’)
h=inline(‘sin(x)+log(y)’)
f2=f(2)
g23=g(2,3)
h23=h(2,3)
使用argnames()和formula()查询内联函数的自变量和函数表达。例如,在命令行窗口输入
argnames(h)
ans =
‘x’
‘y’formula(h)
ans =
sin(x)+log(y)
quadl 数值计算积分,自适应Lobatto求积
1、Q = quadl(FUN,A,B)试图将标量值函数FUN从A到B的积分,误差在1.e-6.以内。采用高阶递归自适应求积。FUN是一个函数句柄。函数Y=FUN(X)应该接受一个向量参数X并返回一个向量结果Y,即在X的每个元素处的被积函数。
2、 Q = quadl(FUN,A,B,TOL,TRACE),会显示[fcnt A B - A Q]在递归过程中的值。使用[]作为占位符来获得TOL的默认值。
Example:
Q = quadl(@myfun,0,2);
where the file myfun.m defines the function:
%-------------------%
function y = myfun(x)
y = 1./(x.^3-2*x-5);
%-------------------%