Ich habe eine Anzahl von Listen, wobei jedes Element eine Firma repräsentiert.Wie man verschiedene Gleichungen auf Elemente in einer Liste basierend auf if-Anweisungen in Mathematica anwendet
Zum Beispiel:
b = {1, 2, 3, 4, 5}
c = {3, 4, 6, 8, 9}
bedeutet Company 1 b = 1, c = 3 und Company 2 hat b = 2, c = 4 usw.
Ich versuche, eine Reihe von bedingten zu codieren Anweisungen ohne Verwendung von Schleifen.
Zum Beispiel, wenn Firma 'x' z> 0 hat, dann möchte ich, dass a, d, g auf die eine Weise aktualisiert wird, und wenn z < 0 ich möchte, a, d, g auf eine andere Weise .
Ich habe versucht, den Befehl If, aber es scheint nicht für Listen mit mehreren Elementen zu arbeiten.
If [z > 0,
a = b + c;
d = e - f;
g = h - i - j;
,
a = n - o;
d = p - q;
g = w + y]
Ich habe mit dem MapThread-Befehl experimentiert, aber kann nur scheinen, um es für eine Zeile Code zu arbeiten. Zum Beispiel für a:
a = MapThread[If[#1 > 0, #2 + #3 , #4 - #5] &, {z, b, c, n, o}]
aber dies wird umständlich, wenn ich dies für jede einzelne Zeile zu schreiben.
Gibt es eine einfache Möglichkeit, dies zu implementieren, ohne Schleifen zu verwenden?
brauchen ein vollständigeres Beispiel für die Eingabe und erwartete Ausgabe, und besser auf mathematica.stackexchange.com gefragt – agentp