Matlab 打印“蛇”图

Matlab 打印“蛇”图,matlab,plot,Matlab,Plot,我需要这样的打印图: 我的代码只适用于n==6,但它应该适用于其他每一个n1,2,…,99100。这不是一个简单的组合任务,但这应该是可行的。您需要创建一个公式,每次都给出正确的点。为了使它简单一点,我创建了两个变量lineLength和direction,用于计算下一行的长度,以及下一行的方向是正方向还是负方向。垂直点在“与上一个相同”和“与上一个相同+一”之间交替。此外,我需要访问循环中的前一个元素,因此我在循环之前设置了前两个元素。我还设置了循环后的最后一个值,因为它的行为与其他值不同 f

我需要这样的打印图:


我的代码只适用于n==6,但它应该适用于其他每一个n1,2,…,99100。这不是一个简单的组合任务,但这应该是可行的。您需要创建一个公式,每次都给出正确的点。为了使它简单一点,我创建了两个变量lineLength和direction,用于计算下一行的长度,以及下一行的方向是正方向还是负方向。垂直点在“与上一个相同”和“与上一个相同+一”之间交替。此外,我需要访问循环中的前一个元素,因此我在循环之前设置了前两个元素。我还设置了循环后的最后一个值,因为它的行为与其他值不同

function draw123(n)
y(2*n+1,1) = 0;
x = y;
x(2) = n;

for k = 3:2:2*n-1
    x(k) = x(k-1);
    lineLength = (n-(k-1)/2);
    direction = (-1)^((k-1)/2); % +1 or -1
    x(k+1) = lineLength * direction + x(k-1);
    y(k) = y(k-1)+1;
    y(k+1) = y(k);
end

x(end) = x(end-1);
y(end) = y(end-1)+1;

plot(x,y,'r');

你的代码中没有n…看看我的答案:@whrrgarbl抱歉这应该是:x=1:n和y=zeros1,你能把它编辑到你的问题中吗?使用n的方式对于编写正确的答案非常重要。此外,请包含您收到的错误消息-我在按照编写的方式运行代码时收到一个错误,x=1:6;y=零1,6矢量必须具有相同的长度。
function draw123(n)
y(2*n+1,1) = 0;
x = y;
x(2) = n;

for k = 3:2:2*n-1
    x(k) = x(k-1);
    lineLength = (n-(k-1)/2);
    direction = (-1)^((k-1)/2); % +1 or -1
    x(k+1) = lineLength * direction + x(k-1);
    y(k) = y(k-1)+1;
    y(k+1) = y(k);
end

x(end) = x(end-1);
y(end) = y(end-1)+1;

plot(x,y,'r');