polyfit更快方法在第三维度的大型3 d矩阵?

6视图(30天)
我试图理解答案但是我似乎不能理解其背后的数学,我不知道为什么它给正确的答案。
同时,在我的项目我做指数适合大型3 d矩阵的第三维度两个for循环。
我的代码:
dataCube =兰德(480640500);
x =兰德(500 1);
sizeCube =大小(dataCube);
exCube = 0 (sizeCube);
2 = 1:sizeCube (1);
3 = 1:sizeCube (2);
(1:)= dataCube (ii, iii:);
信号= s ';
=合适(x,信号,“exp2”)
y =函数宏指令(x);
exCube (ii, iii:) = y ';
结束
结束
这段代码需要几个小时完成运行。
有经验的一个快速方法适合在3 d dimesnion大型3 d数据矩阵?
任何帮助将不胜感激。

答案(1)

马特·J
马特·J 2014年9月12日
编辑:马特·J 2014年9月12日
因为一个多项式线性依赖于未知系数,多项式的解决方案是一个封闭的线性函数的输入数据,因此可以表示为一个矩阵乘法。你不能加快适合exp2多项式一样,因为最小二乘适合exp2既不是线性的,也不是封闭的函数的输入信号。
然而,有技巧可以使用,取决于你dataCube。例如,如果相邻信号dataCube总是很相似,你可以初始化一个信号的设置与解决方案从之前的信号。这减少了所需的迭代的数量的健康。
4评论
马特·J
马特·J 2014年9月13日
编辑:马特·J 2014年9月13日
这里有一个例子使用FMINSPLEAS exp2配件,
x = linspace (0, 3100);
y = 4 * exp (3 * x) - 5 * exp (2 * x);
funlist = {@ (cd, x) exp (cd (1) * x),
@ (cd, x) exp (cd光盘(1)+ (2))* x)};
cd0 = [1,4];%初始猜测
选择= optimset (“disp”,“通路”,“TolX”1 e-20“TolFun”1 e-20);
(cd, ab) = fminspleas (cd0 funlist, x, y,[],[],[],选项);
一个= ab (1),
b = ab (2),
c = cd (1),
d = (1) + cd (2),

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!