Edw*_*its 22 matlab printf disp
我有一个矢量x = (1, 2, 3),我想显示(打印)它Answer: (1, 2, 3).
我尝试了很多方法,包括:
disp('Answer: ')
strtrim(sprintf('%f ', x))
Run Code Online (Sandbox Code Playgroud)
但我仍然无法以我需要的格式打印它.
有人能指出我的解决方案吗?
编辑:
两个值和(长度)x都不提前知道.
Uri*_*hen 32
我更喜欢以下,更清洁:
x = [1, 2, 3];
g=sprintf('%d ', x);
fprintf('Answer: %s\n', g)
Run Code Online (Sandbox Code Playgroud)
哪个输出
Answer: 1 2 3
Run Code Online (Sandbox Code Playgroud)
您可以使用
x = [1, 2, 3]
disp(sprintf('Answer: (%d, %d, %d)', x))
Run Code Online (Sandbox Code Playgroud)
这导致了
Answer: (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
对于任意大小的矢量,您可以使用
disp(strrep(['Answer: (' sprintf(' %d,', x) ')'], ',)', ')'))
Run Code Online (Sandbox Code Playgroud)
另一种方法是
disp(strrep(['Answer: (' num2str(x, ' %d,') ')'], ',)', ')'))
Run Code Online (Sandbox Code Playgroud)
这是另一种利用Matlab strjoin功能的方法.使用strjoin它可以轻松自定义值之间的分隔符.
x = [1, 2, 3];
fprintf('Answer: (%s)\n', strjoin(cellstr(num2str(x(:))),', '));
Run Code Online (Sandbox Code Playgroud)
这导致: Answer: (1, 2, 3)