Add table variable and assign constant string

I want to add a new variable to a table and assign a string to that variable for every row of the table.
T = table({'A';'B';'C'},[1;2;1],[6;7;5],...
'VariableNames',{'Section' 'Data1' 'Data2'})
newString = "Project A"
T.newVar(:) = {newString}
T =
Section Data1 Data2 newVar
_______ _____ _____ __________
'A' 1 6 [1x0 cell]
'B' 2 7 [1x0 cell]
'C' 1 5 [1x0 cell]
What I'd like is....T=
Section Data1 Data2 newVar
_______ _____ _____ __________
'A' 1 6 'Project A'
'B' 2 7 'Project A'
'C' 1 5 'Project A'

 채택된 답변

Walter Roberson
Walter Roberson 2016년 11월 7일

2 개 추천

T.newVar = repmat({newString}, size(T,1), 1)

댓글 수: 2

Guillaume
Guillaume 2016년 11월 7일
편집: Guillaume 2016년 11월 7일
Well, actually, if string means the new string type introduced in 2016b (as the double quotes would indicate), then:
T.newVar = repmat(string('Project A'), height(T), 1)
Typo - meant to use single quotes.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Peter Perkins
Peter Perkins 2016년 11월 9일

2 개 추천

This slight change to the original code also works:
>> T.newVar(:,1) = newString % note the ",1"
T =
Section Data1 Data2 newVar
_______ _____ _____ ___________
'A' 1 6 "Project A"
'B' 2 7 "Project A"
'C' 1 5 "Project A"

댓글 수: 2

Guillaume
Guillaume 2016년 11월 10일
That is interesting. Is it documented anywhere?
It also does not make sense that one syntax works and the other doesn't since for a column vector (:) and (:, 1) should be exactly equivalent.
Using (:,1) to create a new column vector is standard MATLAB syntax, and is sometimes needed to make sure your result becomes a column vector.
The issue here is that newVar doesn't yet exist as a column vector when you make the assignment. But in a table, it does seem like it shouldn't be needed. I will make a note to have that looked into.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

태그

질문:

2016년 11월 7일

댓글:

2016년 11월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by