0

在 for 循环中调用函数时,如果 n 是循环迭代的次数,我需要将所有返回值存储到列矩阵 nx1 中:

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

存储这些值后,我还需要获得前五个值。

4

2 回答 2

1

假设您的论点res取决于 index 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

需要在循环之前分配以确保您有列矩阵而不是行。

编辑

回答最后一个问题:存储这些值后,我还需要获取前五个值。

您可以使用排序功能来接收最佳值:

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