forループを使用して最小値を見つけ、結果をリストに保存する数字のリストが 3 つあります。
a= {2,3,4,5,6}
b = {4,5,7,2,1}
c= {9,6,4,6,2}
3 つのリストから各インデックスの最小値を取得し、それをリスト (たとえば d) に変換したいと思います。つまり、d = {2,3,4,2,1} です。
私が開始したループは次のとおりです:
minsl = {};
(i = 1, i = 6, i++, の場合)
分 = {a[i], b[i], c[i]};
minval = 最小値(分);
minsl=(minsl,minval,i) に挿入します。
If(n items(minsl)==5, break()); // この行はループが止まってしまうため、ループを止めるために追加されました
);
出力は minsl = {1,1,1,1,1} です。つまり、リストの最後のエントリのみを保存して停止してしまいます (ブレーク ラインなしで永遠に続きます)。{2,3,4,2,1} である必要があります。
修正方法について何か提案はありますか? ありがとうございます!!
自動化とスクリプトRe: for ループを使用して最小値を見つけ、結果をリストに保存するこれについては考えていませんでした。良いアイデアですね。ありがとうございます!
Re: for ループを使用して最小値を見つけ、結果をリストに保存するありがとう!!:)
Re: for ループを使用して最小値を見つけ、結果をリストに保存するこれには行列 + V Min() を使用することもできます (必要に応じて、理解しやすいようにコードにコメントすることを忘れないでください)
Names Default To Here(1);
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
m = Matrix(a)` |/ Matrix(b)` |/ Matrix(c)`;
d = As List(V Min(m)`); // {2, 3, 4, 2, 1}
Re: for ループを使用して最小値を見つけ、結果をリストに保存するFor()ループの
For( i = 1, i = 5, i++,
必要となる
For( i = 1, i <= 5, i++,
そうすれば、思った通りに動作するようです
names default to here( 1 );
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
For( i = 1, i <= 5, i++,
mins = a[i] || b[i] || c[i];
minval = Minimum( mins );
Insert Into( minsl, minval );
);Re: for ループを使用して最小値を見つけ、結果をリストに保存するa = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
i = 1;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i=2;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i = 3;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
i = 4;
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
minslつまり、上記は機能しますが、リストの長さがはるかに長い場合にループを機能させたいと思います。
Re: for ループを使用して最小値を見つけ、結果をリストに保存するありがとう!ただし、順序は保持されないようです。基本的には、3 つのリストの最初のインデックスから最小値を取り出し、それをリストに保存する必要があります (順序を保持)
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
minsl = {};
for(i = 1, i = 5, i++,
mins = {a[i],b[i],c[i]};
minval = minimum(mins);
insert into (minsl,minval,i);
If(n items(minsl)==5, break());
);上記のコードを実際のループを無視して実行し、i=1 を実行してからループの内側だけを実行し、次に i=2 としてループの内側を実行すると動作します (minsl = {2,3} が表示されます)。ただし、何らかの理由でループが正しく循環せず、中断します。
Re: for ループを使用して最小値を見つけ、結果をリストに保存する私はこの問題に次のように取り組みます
names default to here(1);
a = {2, 3, 4, 5, 6};
b = {4, 5, 7, 2, 1};
c = {9, 6, 4, 6, 2};
a1= sortlist(a);
remove from(a1,3,n=length(a)-2);
b1= sortlist(b);
remove from(b1,3,n=length(b)-2);
c1= sortlist(c);
remove from(c1,3,n=length(c)-2);
d=a1||b1||c1;
また、スクリプト コードを入力するときに、プレビュー ウィンドウの上部にアイコンが表示されます。これにより、読者はコードをより簡単に読み取ることができます。