我正在编写一个代码(使用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
答案 0 :(得分:1)
在Matlab中,*运算符定义矩阵乘法。
尝试将第13行更改为
T(1,x)= 2. * x。* myCheb(n-1,x)-myCheb(n-2,x); (注意星号前的句号) 这将按元素
执行乘法元素