matlab 通过m-file怎么查询workplace中的数组

想在m-file中调用workspace中的x和y数,每个x对应相应的y;具体问题是这样,在workspace中存了x(400001个数),对应的y也是400001个数;现在的问题是r/w=f(x),w已知量,想通过查询x和y的值来求r值,该怎样办呢?m-file中有没有专门的函数。

我大概明白你的意思了,就是y=f(x) 给你一个 x 你要把对应的y算出来,就相当于满足了你的要求

这个问题没有专门的函数,你需要做的是 给你一个x的值,你要找到它在400001里面对应的编号index 然后通过y(index)的到对应的y值

这么长的数组,死搜索是很慢的,如果x的值是单调均匀的,那么就比较简单了
假设为单调递增,x_in为输入,求解y_out=f(x_in)

N=400001;
scope=x(N)-x(1);
index=floor((x_in-x(1))/scope*N);
y_out=y(index);

如果不均匀,单调那也可以采用一些比较好的搜索算法,比如2分法,可以大大提高搜索速率

如果不均匀,也不单调,那么只能死搜索了
温馨提示:答案为网友推荐,仅供参考