round
函数可以采用标量并对其进行操作。然而,它也可以采用阵列并以预期的方式对其进行操作。
>> round(2.3)
ans =
2
>> round([2.3,3.4])
ans =
2 3
我同样有一个功能,希望它能够在""预期""数组输入的方式。它适用于标量输入。我可以运行一个for
循环并在数组的每个元素上评估我的函数,但我还有哪些更智能的方法?
为了进一步具体化,我有:
function [a,b]=func(c,d,e,f)
我有d,e,f
但我想将函数评估为c
的几个值: -
g=[];
for i=1:10
[a,b]=func(c(i),d,e,f);
g=[g;[a,b]];
end
我不完全确定如何申请arrayfun
,但我相信这是我应该使用的。
答案 0 :(得分:0)
您要找的是 arrayfun 功能。 以下是文档:http://www.mathworks.com/help/matlab/ref/arrayfun.html
说,我有这个功能:
function res = myTest(a,b)
size(a) % for checking that we work on each element
res = a+1;
res = res +b;
我有一个矩阵 A
A = magic(3);
我想将 myTest 应用 a 等于 A
中的每个元素A1 = arrayfun(@(x) myTest(x,2),A)
( x 被逗号后声明的数组元素替换)