【发布时间】:2013-03-10 19:59:10
【问题描述】:
我尝试通过以下模型拟合以下正弦模型,这意味着确定性模型+白噪声:
function [x]=generate(N,m,A3)
f1=100;
f2=200;
T=1/f1;
for t=0:N*T/m:N*T
WN(t)=rand(1,t)*2-1;
x(t)=20*sin(2*pi*f1*t)+30*cos(2*pi*f2*t)+A3*WN(t);
end;
但是当我使用以下命令运行时:
generate(100,10,40)
我收到以下错误:
Subscript indices must either be real positive integers or logicals.
Error in generate (line 6)
WN(t)=rand(1,t)*2-1;
那么有什么问题吗?据我所知,我可以为rand 函数使用两个参数,对吗?这里有什么问题?
更新: 这就是我为修复它所做的工作
function [ x]=generate(N,m,A3)
WN=[];
f1=100;
f2=200;
T=1/f1;
k=0;
for t=0:N*T/m:N*T
% WN(k)=rand(1,1)*2-1;
% x(k)=20*sin(2*pi*f1*t)+30*cos(2*pi*f2*t)+A3*WN(k);
%k=k+1;
WN=rand*2-1;
disp(20*sin(2*pi*f1*t)+30*cos(2*pi*f2*t)+A3*WN);
end;
结果
generate(1000,10,40)
25.4143
-1.4678
66.9518
-9.6293
51.9928
55.3843
59.4956
-3.2451
21.9826
10.7896
54.0055
【问题讨论】:
-
看来
t的至少一个值不是正整数... -
怎么可能?t正在从积极变为积极
-
为什么不打印出
t的值并确认呢? -
t 不是整数,它是实数,比如 0.3 等等
-
那当然不行!您不能索引到具有非整数值的数组/矩阵。
标签: matlab noise period spectral