问题声称我的矩阵对于矩阵乘法彼此不兼容,但长度相同

问题描述 投票:0回答:1

我正在调用我的函数:

function [h,y,e] = f_adap(x,d,h0,mu)
    h=h0; P=length(h);
    N=length(x);
    y=zeros(1,N);e=y;
    rP = 0:-1:-P+1;
    for k=P:N
        xx=x(k+rP);
        disp(length(h'))
        y(k)=xx*(h');
        e(k)=d(k)-y(k);
        h=h+mu*e(k)*xx;
    end
end

它向我提供以下错误消息

'Error using  * 
Incorrect dimensions for matrix multiplication. Check that the number of columns in the first
matrix matches the number of rows in the second matrix. To operate on each element of the matrix
individually, use TIMES (.*) for elementwise multiplication.' 

在此行:

y(k)=xx*(h');

我检查了 xx 和 h' 的长度,它们都是 50,所以我不确定为什么这个错误持续存在。

我也尝试过使用 .* 并仅使用 h 而不是 h',但这会提供此错误:无法执行分配,因为左侧和右侧的数量不同 元素。

知道为什么会出现这些错误吗?

matlab matrix-multiplication
1个回答
0
投票

调试此类问题的方法是使用 MATLAB 调试器。首先,在命令提示符下输入:

dbstop if error

然后运行您的代码。当错误发生时,代码将在导致错误的行处暂停,并且所有变量完好无损。检查该行上的变量以确定它们的大小,您就会找到罪魁祸首。然后您可以在代码中回溯以找出为什么它们不是您期望的大小。

© www.soinside.com 2019 - 2024. All rights reserved.