Matlab: добавление символов к рисунку - PullRequest
2 голосов
/ 13 мая 2010

Ниже представлен пользовательский интерфейс, имитирующий кодирование и декодирование LDPC альтернативный текст http://img225.imageshack.us/img225/7775/ldpcgui.jpg

Кодовая последовательность итеративно декодируется путем передачи значений между левым и правым узлами через соединения.

Первое, что было бы полезно добавить для улучшения визуализации, это добавить стрелки к соединениям в направлении передачи значений. Альтернатива - нарисовать большую стрелку вверху соединения, показывающую направление.

Еще одна вещь, которую я хотел бы сделать, - отобразить текущую математическую операцию под соединением (в этом примере c * H '). Чего я не знаю, как это сделать, так это отобразить на рисунке специальные символы, математические символы и другие виды текста, такие как нижний и верхний индексы (например, знак суммы и нижний индекс «Т» вместо знака = «'» для обозначения транспонированной матрицы). ).

Я был бы очень благодарен, если бы кто-нибудь мог указать на какие-либо полезные ресурсы для вопросов выше или показать решение.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 13 мая 2010

Чтобы добавить стрелки, вы можете использовать встроенный QUIVER или, для дополнительных параметров, СТРЕЛКА из обмена файлами. Оба они должны быть нанесены на оси, поэтому, если вы хотите, чтобы большая стрелка сверху, вам нужно создать дополнительный набор осей над основными осями.

Насколько я знаю, вы не можете использовать символы TeX или LaTeX в text uicontrols. Однако вы можете использовать их в метках осей. Таким образом, я предлагаю вам добавить XLabel к осям, например

xlabel('\sigma c*H_T')

или (обратите внимание на $ -знаки, необходимые для LaTeX)

xlabel('$\sum c*H_T$','interpreter','latex')

EDIT

Я не упомянул об использовании text (как предложено @ gnovice и @ YYC ), потому что я думал, что невозможно разместить текст вне оси. Оказывается, я был не прав. text(0.5,-0.2,'\Sigma etc.') должно работать нормально. Я полагаю, что единственным преимуществом использования xlabel является то, что вы можете легко добавлять и размещать метки осей во время создания графического интерфейса.

0 голосов
/ 13 мая 2010

Для рисования стрелки я бы предложил Джонасу arrow.m от Эрика Джонсона на MathWorks File Exchange . Я нашел самый простой способ создания стрелок на рисунках.

Для создания текста с символами вы можете использовать функцию TEXT . Он позволяет размещать текст в заданной точке на осях, и вы можете использовать опции 'tex' (по умолчанию) или 'latex' для свойства 'Interpreter' , чтобы получить доступ к различным символам. Например, это помещает нужный вам текст в точку (0,0), используя 'latex' в качестве интерпретатора:

hText = text(0,0,'$\sum c*H_T$','Interpreter','latex');

Переменная hText является дескриптором созданного текстового объекта, который затем можно использовать с командой SET для изменения свойств объекта (строки, позиции и т. Д.).

0 голосов
/ 13 мая 2010

Что касается 1-го вопроса, аннотация (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/annotation.html) может быть альтернативным решением.

В отношении второго вопроса попробуйте свойство text в справке Matlab.

Поиск " Последовательность символов " для специальных символов; поиск " Указание символов нижнего и верхнего индекса " для поиска нижнего и верхнего индекса.

...