Wolfram mathematica 如何在do循环中绘制多个函数

Wolfram mathematica 如何在do循环中绘制多个函数,wolfram-mathematica,Wolfram Mathematica,使用Do循环在单独的图形上绘制多个函数时遇到问题。我已经知道了如何只为一个fit函数执行它,但是现在我必须为另外9个fit函数执行它 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

使用Do循环在单独的图形上绘制多个函数时遇到问题。我已经知道了如何只为一个fit函数执行它,但是现在我必须为另外9个fit函数执行它

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}];

你说你想在单独的图形上绘制多个函数,这似乎意味着你想要10个单独的图形。如果是这样的话。如果是这样,您可以将所需的两部分分离出来:在循环中生成拟合并将其收集到列表中,然后绘制拟合函数。您可以使绘图功能尽可能复杂。简单的例子:

flst = {x, x^2, x^3, Log[x]}
Plot[#, {x, 0.01, 2}] & /@ flst

一旦你有了这个绘图列表,你可以用它们做任何你想做的事情,例如,制作一个图形网格,或者导出它们,等等。

尝试使用模块。创建一个函数

    plot[i_]:=Module[{local variables for module},
    Any actions you want: fits, calculations etc. Separate them with ";";
    Plot[i-th function]].
然后,您可以使用此函数和不同的i-from-you范围来创建所需的绘图