how to display newline
조회 수: 377 (최근 30일)
이전 댓글 표시
Can you use newline seperately or do you always have to use it in fprintf in order to make it work. Theese are my attempts with newline:
this did not work:
This gave a strange result
Is this the only way to make a newline?:
Here is my script for the last line:
rows=3;
columns=5;
for i=1:rows
for j=1:columns
fprintf('*')
end
fprintf('\n')
end
댓글 수: 1
the cyclist
2011년 10월 16일
I think you got the answer you need from Wayne, but for future reference, you posted three copies of the same image in this question.
채택된 답변
Wayne King
2011년 10월 16일
Hi, '\n' by itself outside of special calls is just interpreted as the string (character array) \n
It's not just in fprintf(), sprintf() also interprets escape characters correctly like \n or \t
but yes you're right:
disp('Hi \n nice to meet you')
% produces Hi \n nice to meet you
but
fprintf('Hi \n nice to meet you')
% Hi
% nice to meet you>>
댓글 수: 4
Sina Davari
2020년 12월 11일
Hi;
You could simply put { disp(' '); } between two disp for obtaining an empty line.
disp('Hi'); disp(' '); disp('nice to meet you')
추가 답변 (4개)
Steven Lord
2022년 9월 6일
If you're using release R2016b or later you can use the newline function, perhaps in conjunction with a string array.
s = "apple" + newline + "banana"
c = ['apple', newline, 'banana']
댓글 수: 2
Vishal
2024년 11월 14일
If you want to use newline in verisons below 2016b you can use following comment.
string2Print=sprintf('%s\n','Hi','nice to meet you')
Kleber Zuza Nobrega
2020년 9월 19일
supose you want to disp the word 'Ball'. Try
a=['Ball',char(13),'to a new line']
disp(a)
댓글 수: 4
Saul Stokar
2022년 9월 6일
Youj can do it using sprintf :
string2Print=sprintf('%s\n','Hi','nice to meet you');
disp(string2Print)
This prints:
Hi
nice to meet you
댓글 수: 2
Saul Stokar
2024년 11월 17일
Note that you can avoid the extra newline after the last printout as well:
disp(sprintf('%s\n%s\n%s','first line','second line','third line')) prints
first line
second line
third line
(without a newline after the last line printed)
while disp(sprintf('%s\n','first line','second line','third line')) prints
first line
second line
third line
(with a newline after the last line printed)
Walter Roberson
2024년 11월 17일
... unless you are using LiveScript or MATLAB Online or MATLAB Answers. All three of those automatically add the "missing" newline after the last output display on each logical line of code (logical line is physical line except taking into account ... line continuation).
Sudesh
2025년 10월 28일
1️⃣ Using \n in fprintf
Your script works perfectly because fprintf interprets \n as a newline:
fprintf('*'); % prints *
fprintf(
'\n'); % moves to next line
✅ This is the standard way and works reliably.2️⃣ Using newline by itself
newline is actually a string in MATLAB, not a command. For example:
s = newline;
disp(['Hello' s 'World'])
This works because you’re concatenating strings.
However, if you try this:
newline
MATLAB will just return the string representing the newline—it won’t actually move the cursor in the Command Window like fprintf('\n') does.
3️⃣ Using newline with fprintf
You can use it like this:
fprintf(['*\n']); % using \n
fprintf([
'*' newline]); % using newline
Both work, but fprintf(newline) alone will not, because fprintf expects a string with content to print. So you must provide it either inside a string or concatenated with text.
댓글 수: 2
Stephen23
2025년 10월 28일
편집: Stephen23
2025년 10월 28일
"newline is actually a string in MATLAB, not a command"
NEWLINE is actually a built-in function. Lets check this using three different approaches:
1) WHICH tells us directly if a function is built-in:
which newline -all
2) EXIST returns a value of 5 for inbuilt functions:
exist newline
3) FUNCTIONS will (since R2020-ish) tell us if the handle refers to a built-in function:
fnh = @newline
functions(fnh)
DGM
2025년 10월 29일
"newline is actually a string in MATLAB, not a command"
If we want to be picky, the newline() function was not available in versions prior to R2016b, but neither was the string class. If it's not a function, then it's also not a string. In fact, it's a character. That's what we're using here.
Perhaps the distinction that would have made more sense is that the purpose of newline() is not to directly increment the console, but to output a variable containing char(10). How this output is displayed when you echo the assignment to console is exactly the same as any other variable of its class.
% assign the char vector 'banana' to a variable
a = 'banana'
% assign char(10) to a variable
% this behavior is no different than the prior line
b = newline()
If you have text (e.g. the output of newline()) and you want to actually print it to console without the variable name and quotes, then you either have to use disp() or fprintf().
fprintf(a)
fprintf(b)
"Both work, but fprintf(newline) alone will not, because fprintf expects a string with content to print."
This is confusing and I don't see the point. It's not that fprintf() expects non-whitespace text inputs. You're simply instructing it to print nothing but the newline. If you're expecting text followed by a newline, then this isn't the fault of fprintf(). It printed exactly what you told it to print. I'm going to modify this so that the newline is more obvious:
fprintf(['*\n*']); % print two asterisks with a newline between
fprintf(['*' newline '*']); % print two asterisks with a newline between
fprintf(newline); % only print the newline and nothing else
"So you must provide it either inside a string or concatenated with text."
Again, this is confusing. If we're working with the informal usage of the word "string", then "inside a string" and "concatenated with text" are the same thing. The two examples you gave are exactly that. Again, I've modified this to make the newline obvious:
% the input to fprintf() is char([42 10 42])
% the outer concatenation operator does nothing here
fprintf(['*\n*']);
% the input to fprintf() is [char(42),char(10),char(42)]
% which is identical to the input above
fprintf(['*' newline '*']);
Alternatively, instead of trying to construct the format expression from a bunch of inputs by direct concatenation, you can use the appropriate format operators and include those variables in the input argument list.
fruit = 'apple';
pastry = 'pie';
fprintf('%s\n%s',fruit,pastry);
참고 항목
카테고리
Help Center 및 File Exchange에서 Entering Commands에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!