我无法使用Do循环在单独的图上绘制多个函数。我已经找到了如何只为一个拟合函数做到这一点,但现在我必须为9个更合适的函数做到这一点。
m = 10;
t0IGList = {0.01, 0.01, 0.012, 0.015, 0.018, 0.022, 0.028, 0.035,
0.042, 0.05};
SubDataFit =
NonlinearModelFit[SubDataList[[1]],
A/(1 + (2 (t - t0)/\[Sigma])^2) +
B0, {{A, 0.7}, {t0, t0IGList[[1]]}, {\[Sigma], 0.006}, {B0, 7.0}},
t];
SubFitPlot =
Plot[SubDataFit[t], {t, 0, 0.07}, ImageSize -> 500,
FrameLabel -> {"Time (s)", "Voltage (V)"}, PlotStyle -> Red,
PlotRange -> {7, 7.8}];
Do[{
SubDataFit[[i]] =
NonlinearModelFit[SubDataList[[i]],
A/(1 + (2 (t - t0)/\[Sigma])^2) +
B0, {{A, 0.7}, {t0, t0IGList[[i]]}, {\[Sigma], 0.006}, {B0,
7.0}}, t];
SubFitPlot =
Plot[SubDataFit[t], {t, 0, 0.07}, ImageSize -> 500,
FrameLabel -> {"Time (s)", "Voltage (V)"}, PlotStyle -> Red];
Print["B = ", i, "Volts"];
Print[SubDataPlot];}, {i, 1, m}];
答案 0 :(得分:0)
你说你想在单独的图表上绘制"多个函数",这似乎意味着你需要10个单独的图形。如果那样吧。如果是这样,您可以将所需的两个部分分开:在循环中生成拟合并将它们收集到列表中,然后绘制拟合的函数。您可以根据需要使绘图功能变得复杂。简单的例子:
flst = {x, x^2, x^3, Log[x]}
Plot[#, {x, 0.01, 2}] & /@ flst
获得此图表后,您可以随意执行任何操作(例如,制作GraphicsGrid
或Export
等等。
答案 1 :(得分:0)
尝试使用Module。创建一个功能
plot[i_]:=Module[{local variables for module},
Any actions you want: fits, calculations etc. Separate them with ";";
Plot[i-th function]].
然后你可以使用这个函数与你范围内的不同i来创建你想要的图。