MATLAB Answers

titel for tables with spce between the words

34 views (last 30 days)
Franziska Domeier
Franziska Domeier on 16 Jan 2020 at 14:29
Commented: dpb on 16 Jan 2020 at 21:13
I would like to have spece between subject and number, but the error is, that is not allowed to have space in variables. Is there a possibility? I wouldn't like to have underscores.
table_subjects = cell2table(table(1:end,:),'VariableNames',{'Subject number' 'Gender' 'Age' 'Weight' 'Height' 'Systolic_pressure' 'Diastolic_pressure'}),
Error in Liste_aller_Matlabfiles (line 50)
table_subjects = cell2table(table(1:end,:),'VariableNames',{'Subject number' 'Gender' 'Age' 'Weight' 'Height' 'Systolic_pressure'
'Diastolic_pressure'})

  0 Comments

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 16 Jan 2020 at 14:41
The R2019b release allows spaces and other (inluuding Unicode) characters in table variable names. Upgrade to it and you will be able to do what you want.

  9 Comments

Show 6 older comments
Steven Lord
Steven Lord on 16 Jan 2020 at 19:58
Here are the Release Notes for this feature. One quote from those notes: "You can access any table or timetable variable using dot notation. However, if a variable name is not a valid MATLAB identifier, then you must specify the name as an expression within parentheses following the dot. The expression can be a variable name enclosed in quotation marks, or a function that returns a character vector or string scalar."
So if your table T has variable names Age and Work Address:
T = table(42, "3 Apple Hill Drive", 'VariableNames', ...
["Age", "Work Address"])
The following will work to retrieve Age:
T.Age
T.('Age') % Or T.("Age")
T{1, 'Age'} % Or using "Age"
To retrieve Work Address:
T.('Work Address') % Or the string equivalent
T{1, 'Work Address'}
But the following wouldn't. It would probably throw an error, or it could concatenate together the variable Work from T and the result of evaluating the command Address (if wrapped in square brackets or curly braces.)
T.Work Address
Star Strider
Star Strider on 16 Jan 2020 at 20:26
@Steven — Thank you. I’ve not needed to get that much into using the new variable name options, so I appreciate your clarification.
dpb
dpb on 16 Jan 2020 at 21:13
"The character for ‘pi’ is a Unicode character, and I am not certain how to use those."
Star-- I was simply writing pi above as an example of an assignment reference to an existing table name with embedded blanks....
Steven, any guesstimates as to the added parsing overhead this refinement requires? While nice for presentation, I wonder about performance.

Sign in to comment.

More Answers (0)

Sign in to answer this question.