Matlab未定义的函数或方法'C'用于'double'类型的输入参数

时间:2013-08-29 04:36:24

标签: matlab function double simulation circuit

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 Reactiveto workspace名称。 LINE2是RLC分支的名称。 RLC分支仅包含电容。

我收到错误

  

“类型的输入参数的未定义函数或方法'C'   '双'。 “

我搜索了stackoverflow,每个人都在讨论目录问题。但我的所有文件都在RUN目录中。

我做了

>> which C

它返回了

C is a variable.

所以我认为C在matlab的目录路径中。那么错误在哪里?

1 个答案:

答案 0 :(得分:2)

您必须执行以下任一操作

a)C作为参数传递给函数simps()

b)从工作区评估C

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

在使用之前的函数内部。

此外,通常不鼓励使用evalevalin,因为它会使您的代码更难以关注和重复使用。

提示:

您可能希望将两者结合起来,如下所示

function simps(C)
if nargin == 0
    C= evalin( 'base', 'C' );
end
% Your code