如何将函数的返回值存储到列矩阵(八度)

时间:2012-11-07 09:35:31

标签: matlab octave

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

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

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

2 个答案:

答案 0 :(得分:1)

假设您的参数res取决于索引i,即result(i) = yourfunction(arg(i)),您可以使用更紧凑的表达式:

  result = arrayfun(@yourfunction,arg);

答案 1 :(得分:0)

您可以使用以下代码:

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

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

修改

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

您可以使用排序功能来获得最佳值:

res=sort(res);
result=res(1:5)