Matlab:用向量和矩阵参数计算符号函数

时间:2016-04-27 22:54:16

标签: matlab function matrix vector

我想做这样的事情:

syms x1 x2 h11 h12 h21 h22
x = [x1 x2]
matrix = [h11 h12; h21 h22]

然后创建我的函数:

f(x, matrix) = ((2*matrix)^(-1/2))*(x');

但我必须做错事,因为我得到了:

  

使用sym / cat时的错误> checkDimensions(第75行)CAT参数尺寸   不一致。

     

sym / cat中的错误> catMany(第38行)[resz,ranges] =   checkDimensions(SZ,暗淡);

     

sym / cat出错(第27行)       ySym = catMany(dim,strs);

     

sym / horzcat出错(第19行)       ySym = cat(2,args {:});

     

sym / subsasgn中的错误(第1639行)                   C = symfun(B,[inds {:}]);

1 个答案:

答案 0 :(得分:0)

错误在您的函数定义中。有关如何在MATLAB中正确声明函数的信息,请参见link

将其放在名为" your_function_name.m"

的单独文件中
function result = your_function_name(x, matrix)
result = ((2*matrix)^(-1/2))*(x');

然后你可以这样调用你的函数:

x = [x1 x2];
matrix = [h11 h12; h21 h22];
your_function_name(x, matrix);

或者您可以使用anonymous功能。

x = [x1 x2];
matrix = [h11 h12; h21 h22];
f = @(x, m) ((2*m)^(-1/2))*(x');
f(x, matrix);