matlab 程序中的Index exceeds matrix 怎么改

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:52:20
numPts=51;
x=linspace( -1,1,numPts);
y=0.5*sin(pi*x)+0.3*sin(3*pi*x)+0.1*sin(5*pi*x);
data=[x y];
>> trnData=data(1:2:numPts,:);
??? Index exceeds matrix dimensions.
这个怎么改啊

x,y是行向量,data也是行向量,也就是行数为1,列数为若干列。
所以你用data(1:2:numPts,:)时,行数超过1了,就出错了。
应该把data化为列向量就可以了。
data=[x y]';

或者前面不变
trnData=dat( : , 1:2:numPts);
只不过这样trnData结果为行向量,上面那个是列向量。

data = [x ; y];