Hallo Igor,
In[1]:=
data = {1, 2, 3, 4, 5, 6, 7, 8, 9};
In[2]:=
tmp = NestList[Rest, data, Length[data] - 2]
Nur bis Length[data]-2, damit im nachsten Schritt nur bis zur
vorletzten Teilliste gerechnet wird.
Out[2]=
{{1, 2, 3, 4, 5, 6, 7, 8, 9}, {2, 3, 4, 5, 6, 7, 8, 9}, {3, 4, 5, 6, 7, 8,
9}, {4, 5, 6, 7, 8, 9}, {5, 6, 7, 8, 9}, {6, 7, 8, 9}, {7, 8, 9}, {8,
9}}
Wenn ich Dich richtig verstanden habe, dann muesste dies eine
Loesung sein:
In[3]:=
((Plus @@ Rest[#]/(Length[#] - 1)) - First[#]) & /@ tmp
Out[3]=
{9/2, 4, 7/2, 3, 5/2, 2, 3/2, 1}
Gruesze und frohes Schaffen,
Peter
Igor schrieb:
[...]
Beispieldatensatz:
In[1]:=
data={1,2,3,4,5,6,7,8,9}
Out[1]=
{1,2,3,4,5,6,7,8,9}
Teillistenerzeugung:
In[2]:=
NestList[Rest, data,Length[data]-1]
Out[2]=
{{1,2,3,4,5,6,7,8,9},{2,3,4,5,6,7,8,9},{3,4,5,6,7,8,9},{4,5,6,7,8,9},{5,6,7,
8,9}
,{6,7,8,9},{7,8,9},{8,9},{9}}
Und nun komme ich nicht weiter: fuer jede Teilliste moechte ich zuerst
die Differenzen von restlichen Elementen zum jeweiligen ersten
Teillistenelement berechnen, diese Differenzen aufaddieren und durch
die jeweilige Differenzenanzahl dividieren (also durch
Length[Teilliste[[i]]]-1). Und schliesslich die jeweiligen Ergebnisse
dann als eine neue Liste darstellen, um diese plotten zu koennen.
Also im Falle der 1. Teiliste sollte rauskommen:
[(2-1)+(3-1)+(4-1)+(5-1)+(6-1)+(7-1)+(8-1)+(9-1)]/8 und so weiter
fuer jede Teilliste bis einschliesslich der vorletzten, wo es 2 Zahlen
(1 Differenz) gibt.
Vielen Dank
Igor