代码之家  ›  专栏  ›  技术社区  ›  Marine Galantin

多色线,来自.txt文件夹的值,怎么做?MATLAB

  •  0
  • Marine Galantin  · 技术社区  · 7 年前

    绘制多色线的一种解决方案是分别绘制n个集合中的横坐标值,并为n个集合设置不同的颜色。

    我有一个想法,对于一个固定值n,如何绘制函数,但我的问题是,我没有一个要绘制的函数。我把我的值放在一个.txt文件夹中,我不知道如何剪切这些值。

    我的目标是甚至手工削减一套价值观,考虑到我不知道会有多少价值观。

    现在我有了这个:

    data = readtable('test.txt');
    figure('Name','Phase'  , 'units','normalized','outerposition',[(8/100) (0.3- 16/100) 0.5 0.7]);
    hold on
       plot(data{:,2},data{:,3}, 'k.', 'LineWidth',1.5 );
       plot(data{:,4},data{:,5}, 'r.', 'LineWidth',1.5  );
    xL = xlim;
    yL = ylim;
    line([0 0], yL);  %x-axis
    line(xL, [0 0]);  %y-axis   
          title(['Phase portrait'])
          xlabel('f')
          ylabel('f '' ')
    hold off 
    

    我在.txt文件中读取函数的值,然后绘制第2/3列和第4/5列。第一列是时间的召唤。

    知道吗?

    the first column is the time, and then by pair of two, you have the x_axis and y-axis

    第一列是时间,然后通过两个列中的一对,得到x轴和y轴。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Paolo    7 年前

    下面的代码从.txt文件中读取数据,并确定有多少个条目。 n 用于条目数, C 用于列数。由于您指出第五列可能并不总是出现在.txt文件中,因此使用条件语句检查列数。

    for循环用于在同一图表上绘制条目。 通过将绘图函数中的RGB三联体设置为随机值,可以获得不同的颜色。 兰德 功能。

    data = readtable('file.txt');
    n = numel(data.Var1);
    c = size(data,2);
    
    figure('Name','Phase'  , 'units','normalized','outerposition',[(8/100) (0.3- 16/100) 0.5 0.7]);
    for i=1:n
        plot(data{i,2},data{i,3},'.','Color',rand(3,1),'MarkerSize',10);  
        hold on
        if c>=5
            plot(data{i,4},data{i,5},'.','Color',rand(3,1),'MarkerSize',10);
        end
    end
    xL = xlim;
    yL = ylim;
    line([0 0], yL);  %x-axis
    line(xL, [0 0]);  %y-axis   
    title(['Phase portrait'])
    xlabel('f')
    ylabel('f '' ')
    hold off 
    

    对于.txt文件的前几个条目,图表将如下所示:

    enter image description here

    我把记号笔的尺寸稍微大一点,这样你就能清楚地分辨出不同点之间的不同颜色。你可以通过改变 点尺寸 .