绘制迭代

时间:2016-03-09 00:23:07

标签: matlab plot

我试图通过使用以下内容绘制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)

我的目标是观察哪些值会在

之间振荡

1 个答案:

答案 0 :(得分:0)

如果你仔细观察,你会发现你有两个 for循环,并且你的plot命令在它们之外。外部循环遍历R,内部循环遍历迭代。

问题在于,在通过外部循环,跨多个值或X的所有时间内,您都会将新值连接到r。因此,当您到达X命令时,numel(R) x N最终会成为plot。这显然与iter的大小不同。

因此,plot失败,因为它希望前两个输入的大小相同。

你实际上并没有通过内循环存储每个迭代,所以我不确定你在这里想要绘制的是什么。