我必须从表格值(两列)构建一个函数,这些函数写在文本文件中。制作它的过程如下:
使用命令importdata读取数据文件
Xp = importdata('Xp.dat','\t',1);
将每列存储在变量
中x = Xp(1:18304,1);
y = Xp(1:18304,2);
使曲线拟合两个变量
ft = fittype('linearinterp');
datos.f_Xp = fit(x,y,ft);
但是,当我分析代码时,我发现我的瓶颈是内置函数fittype.fittype
,fittype.evaluate
,cfit.feval
,ppval
和{{ 1}}
这与曲线拟合有关。所以我问自己应该如何管理用于改进代码的列表值。
答案 0 :(得分:1)
您正试图将18304个数据点拟合到曲线中。此外,您正在使用linearinterp ...这意味着例程正在以分段方式运行。如果你想让代码更快,请使用更少的数据点。
或者尝试:
ft = fittype('poly1');
由于我无法访问数据
,因此不确定是否是您需要的答案答案 1 :(得分:0)
可能是“Eval”功能可以适用于您的情况, 一些简单的例子:
A = '1+4'; eval(A)
ans =
5
P = 'pwd'; eval(P)
ans =
/home/myname
更高级!
for n = 1:12
eval(['M',int2str(n),' = magic(n)'])
end
此外,它有一个姐妹名字“feval” 猜,它做了什么! [V,D] = feval('eig',A) [V,D] = eig(A)
在这里
function plotf(fun,x)
y = feval(fun,x);
plot(x,y)
你是对的!一切都是等价的,
查看here并找到更多相关功能