Add lines to a struct

7 views (last 30 days)
Bruce Victor
Bruce Victor on 27 Dec 2021
Commented: Stephen23 on 27 Dec 2021
I have a struct where one of the columns is the PatientID that appears like this 'P00000001' and I want to add more patients with a diferent PacientID but with the same structer ('P00000001' - a string with P and 8 numbers) how do I do?
  2 Comments
Stephen23
Stephen23 on 27 Dec 2021
"structs do not have "columns""
This structure has three columns:
S = struct('A',{1,2,3;4,5,6})
S = 2×3 struct array with fields:
A
size(S,2)
ans = 3

Sign in to comment.

Answers (1)

Adam Danz
Adam Danz on 27 Dec 2021
Edited: Adam Danz on 27 Dec 2021
s = struct();
s.(sprintf('P%08.0f',1)) = 'Baetriz';
s.(sprintf('P%08.0f',2)) = 'Adam';
s.(sprintf('P%08.0f',3)) = 'Matlab'
s = struct with fields:
P00000001: 'Baetriz' P00000002: 'Adam' P00000003: 'Matlab'
Or if you're refering to tables,
T = table();
T.(sprintf('P%08.0f',1)) = 'Baetriz';
T.(sprintf('P%08.0f',2)) = 'Adam';
T.(sprintf('P%08.0f',3)) = 'Matlab'
T = 1×3 table
P00000001 P00000002 P00000003 _________ _________ _________ Baetriz Adam Matlab
  2 Comments
Adam Danz
Adam Danz on 27 Dec 2021
Or if you want to add row names all at once,
names = ["Baetriz";"Steve";"Adam"]
names = 3×1 string array
"Baetriz" "Steve" "Adam"
rownames = compose('P%08d',1:numel(names))
rownames = 1×3 cell array
{'P00000001'} {'P00000002'} {'P00000003'}
T = table(names, 'RowNames', rownames)
T = 3×1 table
names _________ P00000001 "Baetriz" P00000002 "Steve" P00000003 "Adam"

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!