Wolfram mathematica 如何将列表值应用于函数中的变量并获得结果列表?

Wolfram mathematica 如何将列表值应用于函数中的变量并获得结果列表?,wolfram-mathematica,Wolfram Mathematica,我有一个3D列表fp={{x1,y1,z1},{x2,y2,z2},{x100,y100,z100},我有一个由拟合得到的函数 fitline = Fit[fp, {1, x, x^2, y, y^2, x y}, {x, y}] 然后我想比较拟合值,i。Efitline(x1、y1)、fitline(x2、y2)等,与原始的z1、z2等连接 那么,我如何使用fp[[All,1]]中的每个x和fp[[All,2]]中的每个y来生成一个新的列表,比如由{fitline(x1,y1),fitlin

我有一个3D列表fp={{x1,y1,z1},{x2,y2,z2},{x100,y100,z100},我有一个由拟合得到的函数

fitline = Fit[fp, {1, x, x^2, y, y^2, x y}, {x, y}]
然后我想比较拟合值,i。Efitline(x1、y1)、fitline(x2、y2)等,与原始的z1、z2等连接

那么,我如何使用
fp[[All,1]]
中的每个x和
fp[[All,2]]
中的每个y来生成一个新的列表,比如由{fitline(x1,y1),fitline(x2,y2),…}组成的fdata?有没有不使用嵌入循环的方法?

假设(希望)您有Mma版本7,这样您就可以使用
线性模型拟合
,它允许提取拟合模型的许多属性,包括
“PredictedResponse”
。比如说,

 ClearAll[x, y, data, pred];
 data = Flatten[Table[{x, y, Sin[x + y]}, {x, 5}, {y, 5}], 1];
 lm = LinearModelFit[data, {x, y}, {x, y}];
 pred = lm["PredictedResponse"];
 Transpose@Flatten[{Transpose@data, {pred}}, 1] // MatrixForm
给予

如果必须使用
Fit
,则可以执行以下操作:

 lmf = Fit[data, {1, x, y}, {x, y}];
 fitfunc[x_, y_] := lmf[[1]] + lmf[[2, 1]] x + lmf[[3, 1]] y;
 predz = fitfunc @@@ data[[All, 1 ;; 2]];
 dataAndPredictions = 
 Transpose@Flatten[{Transpose@data, {predz}}, 1] // MatrixForm
假设(希望)您有Mma版本7,以便可以使用
LinearModelFit
,它允许提取拟合模型的许多属性,包括
“PredictedResponse”
。比如说,

 ClearAll[x, y, data, pred];
 data = Flatten[Table[{x, y, Sin[x + y]}, {x, 5}, {y, 5}], 1];
 lm = LinearModelFit[data, {x, y}, {x, y}];
 pred = lm["PredictedResponse"];
 Transpose@Flatten[{Transpose@data, {pred}}, 1] // MatrixForm
给予

如果必须使用
Fit
,则可以执行以下操作:

 lmf = Fit[data, {1, x, y}, {x, y}];
 fitfunc[x_, y_] := lmf[[1]] + lmf[[2, 1]] x + lmf[[3, 1]] y;
 predz = fitfunc @@@ data[[All, 1 ;; 2]];
 dataAndPredictions = 
 Transpose@Flatten[{Transpose@data, {predz}}, 1] // MatrixForm

你使用什么版本的Mathematica?您是否可以从版本7访问LinearModelFit?您使用的Mathematica版本是什么?您是否可以从版本7访问LinearModelFit?