这个错误在Matlab中对三个变量的冲突意味着什么?

时间:2013-11-26 16:57:54

标签: matlab mesh

我正在尝试创建一个包含三个变量的任意函数: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中进行浏览?

1 个答案:

答案 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')

surf of function at different time points