how can i print an array using fprintf function?

508 views (last 30 days)
i tried printing an array
array = [1 2 3];
with fprintf funtion,like this
fprintf('array = %1.0f', array);
but i am getting result in this form:
array = 1array = 2array3
can anyone help me resolving this problem?
i want to get result in this form
array = 1 2 3
or
array = [1 2 3]

Accepted Answer

dpb
dpb on 22 Oct 2019
Edited: dpb on 22 Oct 2019
You didn't put but one numeric formatting string in the format; hence, the whole thing repeats as often as needed to output the array. You needs must count the array and build the format string to match:
fmt=['array =' repmat(' %1.0f',1,numel(array))];
fprintf(fmt,array)
NB: The above will echo to screen w/ a newline which may or may not be desired behavior depending upon the application. If want to just display the above on the command line w/ next prompt on new line instead of at end of the string, have to add the \n explicitly:
fmt=['array =' repmat(' %1.0f ',1,numel(array)) '\n'];
One last little nuance: notice didn't put a blank after the '=' sign; that's in front of the numeric format string portion...one after the equal would end up doubling-up for the first element.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!