реклама на сайте
подробности

 
 
> matlab. Печать sym функции в title графика, не работает
lotorev
сообщение Oct 16 2007, 07:14
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 25-11-05
Пользователь №: 11 388



Код

syms x y t b
x = y^t+b;

plot([0:10],[0:10]);
title('asdf');


выводит значение asdf на заголовок title графического объекта.

ХАЧУ чтобы в этот title печаталась функция x=...
symbolic toolbox была введена фукция latex - формирование строки latex из символьной переменной.

Следующий код ДОЛЖЕН работать, однако не работает:
Код

syms x y t b
x = y^t+b;

plot([0:10],[0:10]);
title(latex(x), 'Interpreter','latex');


Как вывести название символьного графика (symbolic) в title окна??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
neptune-1
сообщение Oct 16 2007, 11:12
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 23-10-06
Пользователь №: 21 591



Замени 'Interpreter' на 'tex' и будет счастье.

Либо title(strcat(strcat('$$',latex(x)),'$$'), 'Interpreter','latex');

Сообщение отредактировал neptune-1 - Oct 16 2007, 11:46
Go to the top of the page
 
+Quote Post
lotorev
сообщение Oct 16 2007, 13:32
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 25-11-05
Пользователь №: 11 388



Цитата(neptune-1 @ Oct 16 2007, 15:12) *
Замени 'Interpreter' на 'tex' и будет счастье.

Либо title(strcat(strcat('$$',latex(x)),'$$'), 'Interpreter','latex');


Счастья не будет, ибо 'Interpreter' по умолчанию стоит в 'tex'.
на самом деле функция у меня посложнее будет. с дробью и корнем.
но неработоспособность можно показать уже на следующем примере:

x = y^t+b
title(latex(x)),'Interpreter','tex');

- работает корректно, красиво выводит степень

x = 2*y^t+b
title(latex(x)),'Interpreter','tex');

НЕ РАБОТАЕТ. на графике выводится строка как есть
2\,{y}^{t}+b
видимо не правильно работает функция latex()

кстати, использую matlab 7.4.0 (R2007а).

Сообщение отредактировал lotorev - Oct 16 2007, 13:35
Go to the top of the page
 
+Quote Post
neptune-1
сообщение Oct 16 2007, 13:54
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 23-10-06
Пользователь №: 21 591



Цитата(lotorev @ Oct 16 2007, 17:32) *
Счастья не будет, ибо 'Interpreter' по умолчанию стоит в 'tex'.
на самом деле функция у меня посложнее будет. с дробью и корнем.
но неработоспособность можно показать уже на следующем примере:

x = y^t+b
title(latex(x)),'Interpreter','tex');

- работает корректно, красиво выводит степень

x = 2*y^t+b
title(latex(x)),'Interpreter','tex');

НЕ РАБОТАЕТ. на графике выводится строка как есть
2\,{y}^{t}+b
видимо не правильно работает функция latex()

кстати, использую matlab 7.4.0 (R2007а).


Попробуй title(strcat(strcat('$$',latex(x)),'$$'), 'Interpreter','latex'); В 2007b это работает.

Функция latex выдает строку в LaTeX (из help). Опытным путем выяснилось, что интерпритатор LaTeX воспринимает строку только если она заключена между '$$ $$'.
Go to the top of the page
 
+Quote Post
lotorev
сообщение Oct 16 2007, 18:06
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 25-11-05
Пользователь №: 11 388



спасибо, заработало!!

p.s вместо strcat можно конкатенировать как title( ['$$' latex(x) '$$'], 'Interpreter','latex')
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016