Str2Func matlab没有运行函数

时间:2015-11-10 00:01:08

标签: matlab

我在使用str2func时遇到问题,当matlab说我调用的函数是 '未定义的功能' X'输入或参数类型' double'。

有一个字符串存储在Shape中。 Shape从函数中获取其字符串,该函数随机提供Shape个不同的值。 我为每个shape都有一个函数,所以例如如果Shape得到值square,那么还有一个名为square的函数,我想根据字符串调用该函数存储在Shape

所以我写了这个:

  f=str2func(shape);
  f(x0,y0);


  function [] = vav(x0,y0)  
    x=[x0 x0+1 x0+1 x0+2 x0+2 x0];
    y=[y0 y0 y0+3 y0+3 y0+4 y0+4];

    patch(x,y,[0.3 0.2 0.45])
  end

所以形状得到一个字符串 例如shape='vav'; 但当我使用f=str2func(shape)时 我打电话给f(x0,y0)它没有用。

我该如何解决?这种方式有什么问题? 谢谢!

更多代码:

draw(shape) 
function[]= draw(shape)
    x0=5;
    y0=20;
    set(myfig,'KeyPressFcn',@keyPressed);


    function [] = keyPressed(~,event)
           switch event.Key

                case 's'
                      y0=moveDown(y0);
                      cla(PlayAx) 
                      f=str2func(shape);
                      f(x0,y0);

                      if y0==0
                      draw(shape)
                      end

和错误,例如当形状获得值' vav'它也有其他价值,但它不适用于任何一个 未定义的功能' vav'输入参数类型为' double'。

0 个答案:

没有答案