在 Matlab 中处理函数输入

计算科学 matlab
2021-12-02 00:43:23

说我有一个功能

function u = somefxn(f,n)

其中f是某个函数,例如f = pi^2*sin(pi*x),n 是n = 1024区间上的离散化数(let ) 。在我写的代码中[0,1]

h = 1/n %n = 1024
x = 0:h:1 %discretizations

但是如果用户在函数中使用yor而不是呢?我该如何处理这种不确定性?zx

如果不清楚,请告诉我。我对 Matlab 比较陌生。

2个回答
  1. 该函数f有(应该​​有?)它自己的局部变量,其名称与调用范围无关。

  2. 使用起来要好得多,x = linspace(0,1,n+1)因为x = 0:1/n:1后者容易受到舍入误差的影响。

我想我明白了你的观点,这个答案没有得到。

你的意思是字面意思

x=1:0.1:10;
f=(pi^2)*sin(pi*x);

?

然后f不再是一个函数。它只是一个变量,其中包含应用于您已有的 x 的函数的结果。换句话说,您的功能已经被评估过。

在这种情况下,您的问题的答案是您不需要做任何事情:f根本不知道x或其他变量。

取决于有问题的确切代码是什么。