2014-11-01 2 views
0

Я знаю, что этот вопрос задал много, но я вижу разные ответы везде.
Я пытаюсь отобразить строку и переменную в одной строке.
Я знаю, что есть несколько способов сделать это, например, с num2str или сначала создать строку, а затем отобразить эту строку. Но может ли кто-нибудь сказать мне кратчайший/самый простой способ достичь этого?
Создание строки, а затем отображение этой строки кажется немного коварной.MATLAB: wat - это самый короткий способ отображения строки и переменной на 1 строке?

Мне нужно сделать это много раз, поэтому было бы неплохо, если бы я мог отображать несколько строк, где каждая строка содержит текст и переменную.
Можете ли вы сделать это как echo"the answer is $var"; как в PHP?

Заранее спасибо

+1

'DISP ([ 'ответ' num2str (вар)])'? – Divakar

ответ

4

Лучший способ чтобы узнать, работает ли fprintf.

fprintf ('string and format specifier like %d or %f\n', value, anotherValue) 

fprintf является мощным и намного быстрее, чем другие методы

См http://www.mathworks.co.uk/help/matlab/ref/sprintf.html примеры того, как форматировать строку.

Еще одна полезная функция для записи

fprintf (2, 'using fprintf in this way writes text in red\n') 
+0

Спасибо. Некоторое время назад я сталкивался с fprintf, но я не понимаю, как это работает и как его использовать (я не могу найти руководство в Интернете). Каковы эти параметры% d и% f \ n, а слова после запятая? Не могли бы вы коротко объяснить, как это работает? – Bart

+0

В этом примере% d означает запись целого числа,% f - поплавок. \ n - новая строка. Два слова после запятой - это переменные, т. Е. Целое и двойное. Методология такая же, как и sprintf. fprintf используется для записи в терминал или файл. В этом примере он записывается на терминал. – matlabgui

+0

Спасибо! Итак, значения между запятыми находятся в том же порядке используемых переменных в строке? Теперь для меня это ясно, я попробовал, и он делает то, что я хочу. Во-вторых, я не думаю, что есть более короткий способ сделать это, чем это, поэтому я собираюсь отметить это как ответ. :) – Bart

1

Может быть следующие мини примеры полезны:

Пример 1:

a=42; str1=sprintf('Value: %d',a); disp(str1);

Пример 2:

a=42; str2=['Value: ' num2str(a)]; disp(str2);

Смежные вопросы