2
function simps()
A=[0,0];
B=[0,0]; 
set_param('circuit/LINE2','Capacitance',num2str(C(1)))
        sim('circuit')
    B=[Real,Reactive];
        A=[A;B];    
end

C行列です。10 個の変数が含まれています。1,10,50,100 ランダムのように、uF です。 circuitファイル Real Reactiveの名前はto workspace名前です。 LINE2RLC ブランチの名前です。RLC 分岐には容量のみが含まれます。

エラーが発生しています

"タイプ 'double' の入力引数の未定義の関数またはメソッド 'C'."

私はstackoverflowを検索しました。誰もがディレクトリの問題について話しています。しかし、私のファイルはすべてRUNディレクトリ内にあります。

やった

>> which C

戻ってきた

C is a variable.

したがって、Cはmatlabのディレクトリパスにあると思います。では、エラーはどこにあるのでしょうか?

4

1 に答える 1

2

次のいずれかを行う必要があります

a)C引数として関数に渡すsimps()

また

b)Cワークスペースから評価する

C = evalin( 'base', 'C' );

使用前の関数内。

また、evalandの使用はevalin、コードの追跡と再利用が難しくなるため、一般的に推奨されません。

ヒント :

次のように両方を組み合わせることもできます

function simps(C)
if nargin == 0
    C= evalin( 'base', 'C' );
end
% Your code
于 2013-08-29T04:47:11.473 に答える