绘制3D功能时出错

时间:2015-05-28 13:07:56

标签: matlab

我试图用Matlab绘制3D函数,我的脚本包含以下内容:

function f=Untitled(s1 ,s2 , s3)
    s =[s1 s2 s3];
    f= 0.0663 + 0.2099245 *(s(1)^2+s(2)^2+s(3)^2);
endfunction

xdata = linspace(36,36,36);
ydata = linspace(36,36,36);
zdata = linspace(36,36,36);
contour( xdata , ydata , zdata , [1 36 72 110])

我收到以下错误:

  

错误====>无题2   s = [s1 s2 s3]

我是Matlab的最新版本,任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的代码中存在许多问题:

  • s = [s1 s2 s3];

    s1 s2s3 水平连接到变量s

    为此,“每个变量中的行数应该相同”。这是导致错误的原因。

    您需要检查传递给的变量的尺寸 功能untitled

  • endfunctionOctave语法。您只需使用end即可 Matlab

  • 然后,您分别使用s(1)s(2)s(3) 功能

    那你为什么要抓他们?你可以使用相应的 变量本身就像这样:

    f= 0.0663 + 0.2099245 *(s1^2+s2^2+s3^2);
    
  • 然后您正在使用linspace(我不知道您实际上打算如何处理linspace)来复制值。虽然这个 没有任何问题,有一个单独的内置功能 那叫 repmat

    您可以像这样使用它:repmat(36,[1,36])

注意:同时将您的功能命名为任何其他名称以进行良好练习