我试图通过使用以下内容绘制x_n = rx_(n-1)(1-x_(n-1))的MATLAB 20次迭代:
r = 3;
x = 0.8;
MaxIter=20;
for r = R
x = rand(1,N);
% iterate the logistic map
for iter=1:MaxIter
x = r*x.*(1-x);
end
X = [X; x]; % store the positions
end
iter = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]
figure; %// opens figure
hold on %// plots multiple things in one figure
plot(iter,X)
我目前正在返回错误。
Error using plot
Vectors must be the same length.
Error in Untitled5 (line 16)
plot(iter,X)
我的目标是观察哪些值会在
之间振荡答案 0 :(得分:0)
如果你仔细观察,你会发现你有两个 for循环,并且你的plot
命令在它们之外。外部循环遍历R
,内部循环遍历迭代。
问题在于,在通过外部循环,跨多个值或X
的所有时间内,您都会将新值连接到r
。因此,当您到达X
命令时,numel(R) x N
最终会成为plot
。这显然与iter
的大小不同。
因此,plot
失败,因为它希望前两个输入的大小相同。
你实际上并没有通过内循环存储每个迭代,所以我不确定你在这里想要绘制的是什么。