come to convert words into cell array

3 views (last 30 days)
g='Eb=3;bb=5;'
g = 'Eb=3;bb=5;'
i want to create arraycell as similar
S={'Eb',3;'bb',5}
S = 2x2 cell array
{'Eb'} {[3]} {'bb'} {[5]}
(';' is used to insert a new symbol

Accepted Answer

Stephen23
Stephen23 on 21 Oct 2024
Edited: Stephen23 on 21 Oct 2024
g = 'Eb=3;bb=5;';
C = textscan(g,'%s%f', 'Delimiter','=', 'EndOfLine',';')
C = 1x2 cell array
{2x1 cell} {2x1 double}
C = [C{1},num2cell(C{2})] % not the best way to store this data
C = 2x2 cell array
{'Eb'} {[3]} {'bb'} {[5]}

More Answers (1)

Manish
Manish on 21 Oct 2024
Edited: Manish on 21 Oct 2024
Hi,
I understand that you want to convert the variable‘ginto a cell array‘S.
You can achieve this by splitting the string using‘strsplit’ functionand adding the result to the cell array.
Here is the code implementation:
g = 'Eb=3;bb=5;';
parts = strsplit(g, ';');
S = {};
for i = 1:length(parts)-1
varValue = strsplit(parts{i}, '=');
% Add to cell array
S{i, 1} = varValue{1};
S{i, 2} = str2double(varValue{2});
end
disp(S);
{'Eb'} {[3]} {'bb'} {[5]}
Here is the documentation link for ‘strsplit’:
Hope this solves!

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!