• Регистрация
Flouter
Flouter 0.00
н/д

Как задать на одних координатах в МАТЛАБе три разных диаграммы так, чтобы при их полном совпадении - они складывались?

08.04.2020

У меня есть задание - нужно в МАТЛАБе в одной системе координат задать три разные диаграммы (разные по цвету, но одинаковые по ширине и по своей сути что ли) так, чтобы если они полностью совпадали - они суммировались друг с другом и накладывались друг на друга (одна диаграмма накладывается поверх другой). И нужно делать это именно с прямоугольными диаграммами. 

Я прочитал про разные задания функции bar - есть диаграммы stacked, но они сразу задаются так, что одна диаграмма идет поверх другой и другого цвета. Остальные версии диаграмм подразумевали под собой то, что диаграммы просто рядом друг с другом оказывались. 

На рисунке представлен примерный вид того, что должно выходить. То есть условие того, что две диаграммы сложатся должно выполняться при такой смене значений переменных, что, скажем, L1/v1+s станет равно L3/v1 и тогда две диаграммы должны стать вот такие вот stack.

У меня есть точная временная шкала на оси OX. В определенным момент времени появляются эти самые диаграммы. В целом код текущий для одной даграммы выглядит так (тут закомментированы три другие диаграммы, кототорые так просто не откладывались, но координаты их возникновения заданы через правильные переменные):

v1 = 300;
L1 = 30;
L2 = 20;
L3 = 10;
s = 1.3;

vals = [1 1 1];

b1 = bar([L1/v1 L1/v1+s L1/v1+2*s],vals,'r');
%b2 = bar([L2/v1 L2/v1+s L2/v1+2*s],vals,'b');
%b3 = bar([L3/v1 L3/v1+s L3/v1+2*s],vals,'w');


если убрать % - на Figure будет только диаграмма белого цвета. мне нужны все три с условием того, что если они оказались в один момент времени в одной точке при смене значений переменных - они должны наложиться друг на друга как stacked диаграммы.

P.S. Работаю вообще впервые с диаграммами. И в Матлабе не силен совершенно. Хотя бы какие-то наставления - уже будет хорошо.


 

Теги

    08.04.2020

    Ответы

    • aBoomest
      aBoomest+942.89
      1.04.2020 17:58

      Можно воспользоватться например блоком switch и после трех импульсов переключить источник или например Timer

      • Н/Д
        Н/Д0.00
        1.04.2020 19:33

        Используйте блок Step и логическое "И". Задайте в блоке "Step" время, в течение которого вам нужны импульсы (начальный сигнал - 1, конечный - 0). Амплитуду сигнала домножите потом на выходе с помощью Gain.

        • Marat
          Marat+208.00
          2.04.2020 08:57

          Смотрели в сторону блока repeating sequence? А по поводу "размытия" не совсем понятно. Возможно это просто отображение дискретного сигнала в Time Scope в режиме line? Можно поменять на stairs. См. рисунок

          • Ответ был удален
            • aBoomest
              aBoomest+942.89
              3.04.2020 08:16

              картину

          • aBoomest
            aBoomest+942.89
            8.04.2020 08:17

            Не могу сказать на счет существования специальных средств для такой задачи. Может корифеи прокомментируют.

            1. Сравнить можно просто числа по которым вы строите исходные диаграммы. Потом просуммировать, если нужно. И нарисовать итог.
            2. Больше всего волнует как вы сравнивать их собираетесь? Для этого необходимо задание точности. Либо я не до конца врубился в задачу.