使用循环以每个恒定速率向图形添加新点

用户名

我正在尝试绘制其中有一点的图形。我想在每个10步骤(或任何恒定速率)的图形上添加一个新点,例如,如果我有50步骤,则应该有50图形。1到的10将有一个点,从11到的图20将有两个点,从21到的图30将有三个点,依此类推。我在下面的代码中做到了这一点,但不幸的是,所有数字只给了我一点。

clc;
clear;
Current_Path=pwd;
cd (Current_Path)
mkdir('Photos','part1')
pridir = 'Photos\part';
R=rand(1,50);
Y=rand(1,50);
for i=1:50
    figure
    for jj = 1:floor((i-1)/10)+1
        if jj<=1
            plot (R(i),Y(i),'*r');
            printto = sprintf('%s%d\\Motion%03d',pridir,1,i);
            print('-djpeg90',printto)
            close(gcf);
            hold on
        else
            R(i)=R(i-((jj-1)*10));
            Y(i)=Y(i-((jj-1)*10));
            plot (R(i),Y(i),'*r');
            printto = sprintf('%s%d\\Motion%03d',pridir,1,i);
            print('-djpeg90',printto)
            close(gcf);
            hold on
        end
    end
    hold off
end
阿德里亚人

您的代码有两个主要问题:

  • 您将在每个绘图后关闭该图。close(clf)移到您hold off当前所在的位置,以避免在每个绘制点之后关闭图形。
  • pridir呼叫的中缺少a 1part1由于没有目录,导致MATLAB无法保存图形part

为了漂亮起见,您可以进行一些其他更改。hold on持有一个数字直到您打电话hold off在您的情况下,您可以hold off完全省略,因为在循环后关闭图形。另外,请考虑将其ii用作变量(与您一样jj),因为i它是虚数单位

更新的代码

Current_Path=pwd;
cd (Current_Path)
mkdir('Photos','part1')
pridir = 'Photos\part1'; % change to 'part1'
R=rand(1,50);
Y=rand(1,50);
for ii=1:50 % change to ii
    figure
    hold on % move hold on here
    for jj = 1:floor((ii-1)/10)+1
        if jj<=1
            plot (R(ii),Y(ii),'*r'); % remove close(gcf) and print calls
        else
            R(ii)=R(ii-((jj-1)*10));
            Y(ii)=Y(ii-((jj-1)*10));
            plot (R(ii),Y(ii),'*r'); % remove close and print 
        end
    end
    printto = sprintf('%s%d\\Motion%03d',pridir,1,ii); 
    print('-djpeg90',printto) % move print outside the inner loop
    close(gcf); % finally close the figure after saving
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用for循环向图形添加子图

使用VBA向每个点添加图例

在for循环的每个循环中向df添加一个新列

使用for循环向表中添加新行:python

使用tidyverse创建以恒定速率增加的列

循环浏览ggplots列表,并使用Knitr给每个图形标题添加标题

在循环中向DF添加新列

每个循环使用新代理

如何向现有图形添加新图?

以恒定速率高精度循环以进行信号采样

向 seaborn.relplot 中的每个点添加文本

使用 apply 函数向 dfs 列表中的每个 df 添加一个新列

使用awk在每个“追加”实例上向新变量添加不同的值

使用awk在每个“追加”实例上向新变量添加不同的值

向data.table中添加新列;使用循环中的assign创建

在不使用 NROW() 的情况下,在 for 循环中向 R 数据帧添加新行

在多个每个循环内/之上向散列添加值

Ruby:每个循环到恒定长度

向条件数组中的每个对象添加新值

列表的Pandas列,向每个列表添加新列

拆分 .csv 向每个新的 .csv 添加额外的列

如何使用perf_event_open以恒定的速率采样?

如何使用matplotlib将每个图形保存在循环中

接受矩阵作为输入并使用 for 循环逐个元素地向每个元素添加一个元素的函数

使用JavaScript向表添加新行

使用kld向freebsd添加新的syscall

在while循环中向SQL Server表添加新列

Pandas DataFrame:通过使用新列迭代 df 向每个单元格添加列表不起作用

Push_back正在替换当前点,而不是向向量添加新点