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名称。 LINE2是 RLC 分支的名称。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 回答