0

While calling a function inside a for loop I need to store all return values into a column matrix nx1 if n is number of times loop iterates:

for (i = 1:n)
        function(arg);
end

After storing these values I need to get top five values as well.

4

2 に答える 2

1

res引数がインデックスに依存すると仮定するとi、つまりresult(i) = yourfunction(arg(i))、よりコンパクトな式を使用できます。

  result = arrayfun(@yourfunction,arg);

.

于 2012-11-07T09:55:10.523 に答える
0

次のコードを使用できます。

res = zeros(n,1);
for (i = 1:n)
        res(i)=function(arg);
end

行の代わりに列行列があることを確認するには、ループの前に割り当てが必要です。

編集

最後の質問の答え: これらの値を保存した後、上位 5 つの値も取得する必要があります。

sort 関数を使用して、最良の値を取得できます。

res=sort(res);
result=res(1:5)
于 2012-11-07T09:39:24.443 に答える