【问题标题】:Matlab: evaluate a symbolic function with vector and matrix argumentsMatlab:使用向量和矩阵参数评估符号函数
【发布时间】:2016-04-27 22:54:16
【问题描述】:

我想做这样的事情:

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,范围] = checkDimensions(sz,dim);

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

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

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

【问题讨论】:

    标签: matlab function matrix vector


    【解决方案1】:

    错误在您的函数定义中。请参阅此link,了解如何在 MATLAB 中正确声明函数。

    把它放在一个名为“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);
    

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2014-03-18
      • 2012-01-27
      相关资源
      最近更新 更多