cannot fill table with chars?
Mostra commenti meno recenti
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 Commenti
"...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
il 12 Mag 2021
Dear Stephen,
thanks for your tip, indeed the solution of using a string array is very good.
Best.
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Cell Arrays in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!