我在Matlab中有一个函数,它有四个参数:
function result = my_function(par1, x, y, par2)
// some code
end
我希望将它集成到2D(沿着x和y维度),用于选择par1和par2的值。我是这样做的:
par1 = 1;par2 =2;
result = integral2(@(x,y)my_function(par1, x, y, par2), xmin, xmax, ymin, ymax);
但是,当我运行此代码并在我的函数中显示变量x和y的大小时,它很大。 integral2函数一次在参数数组上执行我的函数。
如何强制matlab一次为x和y的一个值执行my_function函数?
当然,我可以检查函数中x和y的大小,然后手动创建一个结果数组:
function result = my_function(par1, x, y, par2)
result = zeros(size(x));
for i=1:size(result(:))
% do the work here
end
reshape(result, size(x))
end
但这不是一个非常优雅的解决方案。
更新:我同意整数是一个标量,我喜欢这样。问题是我的函数只在参数(x和y)是标量时起作用。 Matlab需要我的函数值数组来计算积分,所以当x和y是数组时,它会对我的函数进行一次计算。我希望它能多次评估我的函数x和y,它们是标量。