1

サブ関数 foo でシンボリック変数を定義しようとしています (以下を参照)。

function [ ] = test2( )

foo();

     function [] = foo ()
         syms bar;
     end

end

次のエラーが表示されますが、これを解決する方法がわかりません。

EDU>> test2
Error using assignin
Attempt to add "bar" to a static workspace.
 See MATLAB Programming, Restrictions on Assigning to Variables for
 details.

Error in syms (line 66)
        assignin('caller',x,sym(x));

Error in test2/foo (line 6)
        syms bar;

Error in test2 (line 3)
foo();

上記を整理するための助けをいただければ幸いです

4

1 に答える 1

1

関数をスキップするだけsymsです。assignin実行時にネストされた関数に許可されていない引数を出力するために使用します。試す:

function [ ] = test2( )

foo();

     function [] = foo ()
         bar = sym('bar');
         disp(bar+bar);
     end

end

出力:

2*bar
于 2013-03-28T23:40:26.817 に答える