Matlab 如何计算网格中所有点的非显式函数值?
假设我有一个函数Matlab 如何计算网格中所有点的非显式函数值?,matlab,Matlab,假设我有一个函数 f = @(x,y) g(x,y) g不明确。输入x和y值后,应进行数值计算 如何计算并保存此函数在点处的所有值 [x,y] = meshgrid(0:0.1:1,0:pi/10:2*pi); 我调用f[x,y],但它不起作用。有两种方法。你的函数g应该和矩阵一起工作,或者你应该一个接一个地给出值 function eval_on_mesh() f1 = @(x,y) g1(x,y); f2 = @(x,y) g2(x,y); [x,y] = meshgrid(0:0.
f = @(x,y) g(x,y)
g
不明确。输入x
和y
值后,应进行数值计算
如何计算并保存此函数在点处的所有值
[x,y] = meshgrid(0:0.1:1,0:pi/10:2*pi);
我调用
f[x,y]
,但它不起作用。有两种方法。你的函数g应该和矩阵一起工作,或者你应该一个接一个地给出值
function eval_on_mesh()
f1 = @(x,y) g1(x,y);
f2 = @(x,y) g2(x,y);
[x,y] = meshgrid(0:0.1:1,0:pi/10:2*pi);
%# If your function work with matrices, you can do it like here
figure, surf(f1(x,y));
%# If your function doesnt, you should give the values one by one
sol = zeros(size(x));
for i=1:size(x,1)
for j=1:size(x,2)
sol(i,j) = f2(x(i,j),y(i,j));
end
end
figure, surf(sol);
end
function res = g1(x, y)
res = x.^2 + y.^2;
end
function res = g2(x, y)
res = x^2 + y^2;
end
这取决于你的功能。对于基本操作,如果要逐点执行操作,通常可以在运算符前面写一个点
。在不知道你的函数的情况下,我不能告诉你任何其他的事情。在积分2下,函数是一个很长的表达式,积分下的表达式似乎适用于矩阵,但在积分中却不适用。奇怪,看。我想我对这个问题的回答可以用在这里