【问题标题】:bsxfun error when perform '@minus'执行“@minus”时出现 bsxfun 错误
【发布时间】:2017-08-29 08:57:56
【问题描述】:

我有两个矩阵要减去。让我们看看下面的代码。

A=rand(5472,1);
B=rand(1,3);

C= bsxfun(@minus, A, B(:))

我收到错误提示

两个输入数组的非单一维度必须相互匹配

知道为什么会出现这个错误吗? 谢谢!

【问题讨论】:

    标签: matlab bsxfun


    【解决方案1】:

    您正在尝试将bsxfun 应用于两个列向量,而您应该将其应用于一行和一个列向量。

    bsxfun 输入应具有不同 单维数 (size(arr,dim) == 1)。在您的示例中,size(A) = [5472,1]size(B) = [1,3] 是适当的输入(A 的单维度为 2,B 的单维度为 1),但是当您执行 B(:) - B 的单维度时维度变为 2,就像A's,会引发错误。

    做:

    A=rand(5472,1);
    B=rand(1,3);
    
    C= bsxfun(@minus, A, B)
    

    【讨论】:

    • 不敢相信我犯了这样的错误!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多