Table column of strings to a matrix.
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
i am beginer and i am struggling with matlab tables. I have a table column that contains strings with vectors inside
A=["[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[1 1 1 1 1 1 1 1]"]
I would like to have a matrix with the numbers inside, like
B=[0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0;1 1 1 1 1 1 1 1]
How can i do this without using loops? Thank you in advance.
2 Commenti
Stephen23
il 14 Nov 2022
Modificato: Stephen23
il 14 Nov 2022
"I have a table column that contains strings with vectors inside "
This looks like file importing is suboptimal. You can probably change the file importing to import numeric as numeric, which most likely would be simpler and more efficient than messing around with text like this.
Jan
il 14 Nov 2022
"I have a table column that contains strings with vectors inside" - no, there is no table. This is a column vector of strings. If the strings are interpreted as Matlab, they would be vectors, but they are not "inside".
Risposta accettata
Stephen23
il 14 Nov 2022
A = ["[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[1 1 1 1 1 1 1 1]"]
M = cell2mat(cellfun(@str2num,A,'uni',0))
0 Commenti
Più risposte (3)
RAGHUNATHRAJU DASHARATHA
il 14 Nov 2022
As per my understanding you want to get a matrix from the string array
I will demonstarte it using the example below
A=["[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[1 1 1 1 1 1 1 1]"]
B =extract(A,digitsPattern)
B=str2double(B)
for more information go through the link
Steven Lord
il 14 Nov 2022
A=["[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[1 1 1 1 1 1 1 1]"]
A2 = erase(A, ["[", "]"])
double(split(A2, ' '))
0 Commenti
Jan
il 14 Nov 2022
Modificato: Jan
il 14 Nov 2022
A = ["[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[0 0 0 0 0 0 0 0]";"[1 1 1 1 1 1 1 1]"];
AC = char(A);
AC(ismember(AC, '[] ')) = [];
AC = reshape(AC, numel(A), []);
B = AC - '0'
Alternative:
AC = char(extract(A, digitsPattern));
B = squeeze(AC) - '0'
0 Commenti
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!