fprintf the contents of a vector
115 views (last 30 days)
Show older comments
Hello,
As the title suggests, I want to display the contents of a vector in a fprintf command. I have read several posts about sprintf function and had no luck.
My current solution is this..... Is there any more efficient way to right it with less lines of codes?
fprintf('My first vector: ')
fprintf('%d ', vector1)
fprintf('\n')
fprintf('My second vector: ')
fprintf('%d ', vector2)
fprintf('\n')
fprintf('My third vector: ')
fprintf('%d ', vector3)
fprintf('\n')
0 Comments
Answers (3)
madhan ravi
on 17 Nov 2018
Edited: madhan ravi
on 17 Nov 2018
EDITED
But this method is much faster than yours:
g=sprintf('%d ', vector1);
fprintf('Vector1 : %s\n', g)
g=sprintf('%d ', vector2);
fprintf('Vector2 : %s\n', g)
g=sprintf('%d ', vector3);
fprintf('Vector3 : %s\n', g)
Ran a loop to check the speed:
tic
for i = 1:100000
vector1 =1:10;
g=sprintf('%d ', vector1);
fprintf('Vector1 : %s\n', g)
end
toc
Elapsed time is 10.538184 seconds.
tic
for i = 1:100000
vector1 =1:10;
fprintf('Vector1 : ')
fprintf('%d ', vector1)
fprintf('\n')
end
toc
Elapsed time is 15.363047 seconds.
4 Comments
Image Analyst
on 17 Nov 2018
On my computer, my code below takes
Elapsed time is 0.000407 seconds.
so speed doesn't seem to be an issue worth worrying about.
Walter Roberson
on 17 Nov 2018
Fewer lines of code but not necessarily any more efficient in execution:
fprintf( ['My first vector: ', repmat('%d ', 1, numel(vector1)), '\n'], vector1);
0 Comments
Image Analyst
on 17 Nov 2018
You could get rid of two of the fprintf's:
fprintf('My first vector: ')
fprintf('%d ', vector1)
fprintf('\nMy second vector: ')
fprintf('%d ', vector2)
fprintf('\nMy third vector: ')
fprintf('%d ', vector3)
fprintf('\n')
0 Comments
See Also
Categories
Find more on Graphics Performance in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!