いくつかの例です。
a = d = g = ConstantArray[Null, 5];
b = {1, 2, 3, 4, 5};
c = {3, 4, 6, 8, 9};
e = {8, 4, 0, 4, 4};
f = {4, 9, 6, 5, 4};
h = {5, 8, 8, 7, 1};
i = {3, 3, 4, 4, 5};
j = {2, 6, 3, 4, 1};
n = {7, 3, 1, 8, 8};
o = {7, 8, 8, 4, 3};
p = {8, 3, 8, 9, 4};
q = {6, 5, 1, 6, 2};
w = {9, 5, 7, 7, 4};
y = {6, 5, 8, 9, 2};
z = {6, 2, 1, 3, 0};
Array[
If[z[[#]] > 0,
a[[#]] = b[[#]] + c[[#]];
d[[#]] = e[[#]] - f[[#]];
g[[#]] = h[[#]] - i[[#]] - j[[#]];
,
a[[#]] = n[[#]] - o[[#]];
d[[#]] = p[[#]] - q[[#]];
g[[#]] = w[[#]] + y[[#]]] &, Length[z]];
{a, d, g}
{{4、6、9、12、5}、{4、-5、-6、-1、2}、{0、-1、1、-1、6} }
MapThread
には、わかりやすくするためにローカル関数名を使用しています。
{a, d, g} = [email protected][Function[
{b, c, e, f, h, i, j, n, o, p, q, w, y, z},
If[z > 0, {b + c, e - f, h - i - j}, {n - o, p - q, w + y}]],
{b, c, e, f, h, i, j, n, o, p, q, w, y, z}]
{{4、6、9、12、5}、{4、-5、-6、-1、2}、{0、-1、1、-1、6} }
によってローカライズされた名前のReplaceAll
を使用します。
{a, d, g} = Transpose[
[email protected]{b, c, e, f, h, i, j, n, o, p, q, w, y, z} /.
{b_, c_, e_, f_, h_, i_, j_, n_, o_, p_, q_, w_, y_, z_} :>
If[z > 0, {b + c, e - f, h - i - j}, {n - o, p - q, w + y}]]
{{4、6、9、12、5}、{4、-5、-6、-1、2}、{0、-1、1、-1、6} }
は、より完全な入力と期待される出力の例を必要とし、mathematica.stackexchange.comでよりよく尋ねられます。 – agentp