Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在不使用for循环的情况下找到近似值有什么建议吗?_Matlab_Math_Vectorization - Fatal编程技术网

Matlab 在不使用for循环的情况下找到近似值有什么建议吗?

Matlab 在不使用for循环的情况下找到近似值有什么建议吗?,matlab,math,vectorization,Matlab,Math,Vectorization,我已经定义了一个向量[0.11,1,3,4.5,7]。我还有一个函数f,其值为[f(0.11)、f(1)、f(3)、f(4.5)、f(7)]。同时,我还有另一个向量,它可能没有固定的长度。其值和长度由用户确定。为简单起见,假设向量为[4,4.5,5,6]。在编程方面,我想做以下工作: 使用线性近似从给定数据输入中获得近似值f(4)、f(4.5)、f(5)和f(6) 我知道我可以使用for循环来解决问题;但我想知道是否需要for循环。有人能想出一种不使用for循环的方法吗?我们可以这样做: 我们可

我已经定义了一个向量
[0.11,1,3,4.5,7]
。我还有一个函数
f
,其值为
[f(0.11)、f(1)、f(3)、f(4.5)、f(7)]
。同时,我还有另一个向量,它可能没有固定的长度。其值和长度由用户确定。为简单起见,假设向量为
[4,4.5,5,6]
。在编程方面,我想做以下工作:

使用线性近似从给定数据输入中获得近似值
f(4)、f(4.5)、f(5)和f(6)

我知道我可以使用for循环来解决问题;但我想知道是否需要for循环。有人能想出一种不使用for循环的方法吗?

我们可以这样做:

  • 我们可以避免for循环(以及其他任何循环:):

  • 但还有第二个有趣的方法:拟合数据。Matlab具有强大的拟合工具。 . 如果您适合它,您可以采用如下功能:
    myf=@(x)here+some+公式
    。因此,您可以随时为任何
    x
    获取
    f
    的任何值,而无需任何额外计算

  • 如果您知道
    f
    的实际值,只需创建一个匿名函数:

    f = @(x) x.^2
    
    现在您只需输入
    [4,4.5,5,6]
    值,即可得到结果:

    xnew = [4 4.4 5 6]
    result = f(xnew)
    
  • 我们可以这样做:

  • 我们可以避免for循环(以及其他任何循环:):

  • 但还有第二个有趣的方法:拟合数据。Matlab具有强大的拟合工具。 . 如果您适合它,您可以采用如下功能:
    myf=@(x)here+some+公式
    。因此,您可以随时为任何
    x
    获取
    f
    的任何值,而无需任何额外计算

  • 如果您知道
    f
    的实际值,只需创建一个匿名函数:

    f = @(x) x.^2
    
    现在您只需输入
    [4,4.5,5,6]
    值,即可得到结果:

    xnew = [4 4.4 5 6]
    result = f(xnew)
    

  • 你不能用
    f
    来评估
    [4,4.5,5,6]
    ?如果你自己写了
    f
    ,它能接受向量输入吗?如果你愿意,你可以假设我知道f是什么,例如f=t.^2。我可以计算f([4,4.5,5,6])你能不能用
    f
    来计算
    [4,4.5,5,6]
    ?如果你自己写了
    f
    ,它能接受向量输入吗?如果你愿意,你可以假设我知道f是什么,例如f=t.^2。我可以计算f([4,4.5,5,6])