Многоцветная строка, значения из папки .txt, как это сделать?MATLAB - PullRequest
0 голосов
/ 27 мая 2018

Одно решение для построения многоцветной линии состоит в том, чтобы отдельно построить значения абсцисс в 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_axis и yОу

1 Ответ

0 голосов
/ 27 мая 2018

Следующий код считывает данные из файла .txt и определяет количество записей. n используется для количества записей, c используется для количества столбцов.Поскольку вы указали, что пятый столбец не всегда может присутствовать в файле .txt, условный оператор используется для проверки количества столбцов.

Цикл for используется для построения записей на одном графике.Различные цвета можно получить, установив триплет RGB в функции графика на случайные значения с помощью функции rand .

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

Я сделалразмер маркера немного больше, чтобы вы могли четко различать различные цвета между точками.Вы можете настроить это, изменив MarkerSize .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...