【问题标题】:What does this error mean in surf of three variables in Matlab?这个错误在 Matlab 中三个变量的 surf 中意味着什么?
【发布时间】:2013-12-11 23:06:06
【问题描述】:

我正在尝试制作一个包含三个变量的任意函数: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))

我明白了

错误使用 * 输入必须是二维的,或者至少一个输入必须是 标量。要按元素计算 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 中冲浪?

【问题讨论】:

  • 如果你得到 sin(pi*T) 矩阵是 201x201x201。 @(x,y) 的结果是 201x201,所以矩阵维度不相等。
  • 并确保您复制正确的内容,因为在您的函数中您执行.* sin(pi*t) 并在您的错误中仅执行*
  • 你想在四个维度上绘图??
  • @LuisMendo 我想制作 2D 视频,其中 T 是时间,X 和 Y 物理坐标。
  • @LuisMendo 我认为这不是电影。我可能误解了meshgrid的意义。我认为时间应该在meshgrid之外,所以时间分开T = 0:0.5:100。然后,只需在循环中运行 surf 命令作为时间的函数,t。所以这边视频。

标签: matlab mesh


【解决方案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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2021-06-10
    相关资源
    最近更新 更多