我试图编写一个可以是标量和向量的函数。此函数应处理标量,列向量和行向量。我的想法是我尝试了一个for循环,但我在尝试中没有成功。
function f=funk1(x);
for i =1:length(x)
f=exp(-3*x(i).^2)-log(x(i)+0.6)+1/(x(i)-6);
end
end
这只返回向量的最后一个值(在我的函数中),但是我希望它返回向量中的每个值。
答案 0 :(得分:3)
对于这个特定的功能,您可以vectorize,即,在没有循环的情况下一次性完成所有计算。您只需要在[{"item":{"__type":"Pointer","className":"NutricaoCatalogo","objectId":"aTnHD5ttUH"},"ingredientTitle":"Clara De Ovo Natural","portionIndex":"1","portionQuantity":200},
,*
,^
运算符之前添加一个点,当在数组之间应用时(/
和log
已经是元素方式):< / p>
exp
答案 1 :(得分:1)
你错过了f的索引。那样做;
function f=funk1(x);
for i =1:length(x)
f(i)=exp(-3*x(i).^2)-log(x(i)+0.6)+1/(x(i)-6);
end
end