Need help using fprintf for cell array

3 views (last 30 days)
I have a structure named 'shape' that contains three sub-structures ('circle', 'triangle', 'square') and need to print them out in a list. Here is my code:
%Create shape super-structure.
shape = struct('circle', [], 'triangle', [], 'square', []);
%Print names of created shapes.
fields = fieldnames(shape);
fprintf('You created these shapes:\n%s\n', fields{:});
I need the command window to show this... You created these shapes:
circle
triangle
square
...but instead, it prints "You created these shapes:" before every single shape. How should I go about fixing this?

Accepted Answer

Ruger28
Ruger28 on 10 Oct 2019
Edited: Ruger28 on 10 Oct 2019
Give this a go:
shape = struct('circle', [], 'triangle', [], 'square', []);
%Print names of created shapes.
fields = fieldnames(shape);
% fprintf('You created these shapes:\n%s\n', fields{:});
fprintf('You created these shapes:\n');
fprintf('%s\n',fields{:})
You need to seperate the first line from the rest if you don't want repeats.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!