come to convert words into cell array

1 次查看(过去 30 天)
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

采纳的回答

Stephen23
Stephen23 2024-10-21
编辑:Stephen23 2024-10-21
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]}

更多回答(1 个)

Manish
Manish 2024-10-21
编辑:Manish 2024-10-21
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!

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by