作业帮 > 综合 > 作业

Matlab中符号变量在normrnd函数使用时,提示第二个输入标量或者唯一的符号变量?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 09:09:35
Matlab中符号变量在normrnd函数使用时,提示第二个输入标量或者唯一的符号变量?
代码是这样的
Parameter=sym('[mu phi sigma lam rho gamma ome alpha beta]')%生成符号矩阵
Length=size(data,1); %输入数据长度
Z_tk=normrnd(Parameter(2),Parameter(3),Length,1); %生成均值Parameter(2),方差为Parameter(3)的正态分布.
在Matlab中提示错误的信息是这样的
Error using symfun>validateArgNames (line 197)
Second input must be a scalar or vector of unique symbolic variables.
求教不知道怎呢解决
normrnd是用于生成数值类型随机数的,不能用于符号(sym)类型. 该函数会对输入参数进行合法性检查,里面有类似下面的语句:sigma(sigma < 0) = NaN;这句在不同版本中会导致不同的错误,稍早一些的版本会提示“Undefined function or method 'lt' for input arguments of type 'sym'”,也就是说符号变量不能进行关系运算;后来的版本会出现类似你现在贴出来的错误. 如果你想要生成符号类型的正态分布随机数,可以用类似 randn(3,4)*sigma+mu 的式子直接生成,其中sigma和mu为标准差和均值(可以是符号类型),randn函数可以指定需要的矩阵维数.