cannot fill table with chars?
Afficher commentaires plus anciens
Hi I am having a pile of issues with the table features in matlab.
I can't figure out how to put a char array into a char variable of a table. I've been reading the table help files but Il'm missing something :(
x=[1;2;3];
y=[4;5;6];
T=table(x,y)
T =
3×2 table
x y
_ _
1 4
2 5
3 6
>> T.words = repmat({''}, 3, 1);
>> T(1,'words') = 'poop';
The number of table variables in an assignment must match.
>> T(1,3) = 'poop';
The number of table variables in an assignment must match.
>> T{1,3} = 'poop';
The value on the right-hand side of the assignment has the wrong width. The assignment requires a value whose width is 1.
2 commentaires
"...but Il'm missing something "
It isn't a character array. You defined it as a cell array of empty character vectors:
T.words = repmat({''}, 3, 1);
It is certainly possible to define words to be a character array:
>> T.words = char(nan(3,0))
T =
x y words
_ _ _____
1 4
2 5
3 6
>> T.words(1,1:4) = 'boat'
T =
x y words
_ _ _____
1 4 boat
2 5
3 6
>> size(T.words)
ans =
3 4
but that is likely to be useful only in some specific circumstances. I would imagine that most users would prefer a string array.
Giuseppe Degan Di Dieco
le 12 Mai 2021
Dear Stephen,
thanks for your tip, indeed the solution of using a string array is very good.
Best.
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!