我正在尝试创建一个包含三个变量的任意函数:X,Y和T,它们具有相同的长度,201。
我跑
[X,Y,T] = meshgrid(-10:0.1:10, -10:0.1:10, 0:0.5:100);
FF = @(x,y,t) exp( -(x - 0.5).^2 - (y - 0.5).^2 ) / 0.1^2 .* sin(pi * t);
surf(FF(X,Y,T))
我得到了
使用*输入时出错必须是2-D,或者必须至少有一个输入 标量。要计算元素TIMES,请改用TIMES(。*)。
@(x,y,t)exp的错误( - (x-0.5)。^ 2-(y-0.5)。^ 2)/0.1^2*sin(pi * t)
我知道这是有效的
[X,Y] = meshgrid(-10:0.1:10, -10:0.1:10);
FF = @(x,y) exp( -(x - 0.5).^2 - (y - 0.5).^2 ) / 0.1^2;
surf(FF(X,Y))
创建高斯贝尔曲线。 我想为这条曲线添加时间依赖性,但不成功。
如何制作三个变量的任意函数并在Matlab中进行浏览?
答案 0 :(得分:1)
你有可能将pi覆盖成矩阵吗?这会给你带来的错误。以下是在不同时间点绘制函数的示例:
[X,Y,T] = meshgrid(-10:0.1:10, -10:0.1:10, 0:0.5:100);
FF = @(x,y,t) exp( -(x - 0.5).^2 - (y - 0.5).^2 ) / 0.1^2 .* sin(pi * t);
Z = FF(X,Y,T);
figure
subplot(3,1,1)
surf(Z(:,:,1))
title('t = 1')
subplot(3,1,2)
surf(Z(:,:,2))
title('t = 2')
subplot(3,1,3)
surf(Z(:,:,3))
title('t = 3')