多次元配列に対するPolyfitの高速化
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Kouta Amano
am 3 Sep. 2019
Kommentiert: Kouta Amano
am 4 Sep. 2019
私は測定水準x, 測定値yに対し y=a0 + a1*x + a2*x^2 の形でカーブフィッティングを行いたいと考えています。
例えばxの次元は100万×3, yの次元は100万×3であり、1行1行について上記カーブフィッティングを行いたいです。
arrayfunを用いて下記のような関数を作成すると計算は可能でしたが実行速度が大変遅いです。
実行速度を改善するために、よりよい実装方法はないでしょうか。
function coefs = multiPolyfit(x,y,dim)
%%%%%%%%%%%%%%%%%%%%%%%
% x: array型。サンプルを行方向、列方向は水準。
% y: array型。サンプルを行方向、列方向は水準。
% dim: int型
%%%%%%%%%%%%%%%%%%%%%%%
s = table2struct(table(x,y,'VariableNames',{'x','y'}));
coefs = arrayfun(@(z) polyfit(z.x,z.y,dim),s,'UniformOutput',false);
end
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Curve Fitting Toolbox finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!