Разница между дисп и фпринтф

В Matlab мне кажется, что disp а также fprintf обе команды очень похожи в том, что они обе показывают то, что вы говорите. В чем разница между этими 2 командами?

1 ответ

Решение

За disp, он отображает значение переменной.

Например

>> a = 1; disp(a)
     1

Другой пример.

>> disp('example')
example

Заметка, 'example' можно рассматривать как переменную

Ссылка: https://www.mathworks.com/help/matlab/ref/disp.html


За fprintf, если вы говорите об отображении на экран, формат

fprintf(formatSpec,A1,...,An) форматирует данные и отображает результаты на экране.

Разница в disp является то, что он не отображает значение переменной, если вы не указали строку формата

Например, если вы склонны отображать значение переменной, вы получаете ошибку

>> a = 1; fprintf(a)
Error using fprintf
No format string.

Вам необходимо указать формат строки. Например, строка формата 'The value of a is %d\n'

a = 1; fprintf('The value of a is %d\n',a)
The value of a is 1

Если вы говорите о записи данных в текстовый файл, формат

fprintf(fileID,formatSpec,A1,...,An) применяет formatSpec ко всем элементам массивов A1,... в порядке столбцов и записывает данные в текстовый файл. fprintf использует схему кодирования, указанную в вызове fopen.

Например

fileID = fopen('exp.txt','w');
fprintf(fileID,'The number is %d\n',1);
fclose(fileID);

Просмотрите содержимое файла с помощью type команда.

>> type exp.txt

The number is 1

fprintf также может вернуть количество байтов, которое пишет fprintf. Обратитесь к этому ответу

Ссылка: https://www.mathworks.com/help/matlab/ref/fprintf.html

Другие вопросы по тегам