how to display newline
486 ビュー (過去 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 日 9:26
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 日 9:52
編集済み: Stephen23
2025 年 10 月 28 日 9:55
"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 日 0:32
"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!