意外的matlab运算符?

时间:2015-11-30 23:36:08

标签: matlab

我正在编写一个代码(使用MatLab)来生成Chebyshev多项式。当n等于0和1时,此代码运行完美。但是对于n = 2和更大,它给了我这个错误:

使用*时出错 内部矩阵尺寸必须一致。

myCheb中的错误(第13行)         T(1,x)= 2 * x * myCheb(n-1,x)-myCheb(n-2,x);

感谢您帮助解决这个问题。

我的代码如下:

function [ T ] = myCheb( n,x )

out = zeros (1,size(x,2));

for i= 1:x
    if n==0
        T(1,x) = 1;
    elseif n==1
        T(1,x) = 2*x;
    else

        T(1,x) = 2*x*myCheb(n-1,x)-myCheb(n-2,x);
    end

end
out = T(1,x);
end 

1 个答案:

答案 0 :(得分:1)

在Matlab中,*运算符定义矩阵乘法。

尝试将第13行更改为

T(1,x)= 2. * x。* myCheb(n-1,x)-myCheb(n-2,x);  (注意星号前的句号) 这将按元素

执行乘法元素

http://au.mathworks.com/help/matlab/ref/times.html